gpt4 book ai didi

typescript - 函数作为其他函数的属性 - 正确定义

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:29 29 4
gpt4 key购买 nike

如何为将另一个函数作为属性的函数定义接口(interface)?下面的示例不起作用,编译器提示 Property 'peek' does not exist on type '(name): string'

interface MyReturnType {
(name): string;
peek(name) : string;
}

interface MyEvaluator {
evaluator(): MyReturnType;

}


var evaluator = function () {
var result = function (name) {
return 'A';
};
result.peek = function (name) {
return 'B';
};
return result;
};

最佳答案

没有办法在 Typescript 中实现这样的功能,但您当然可以像现在一样构建它。问题是您必须将 result 显式键入为 MyReturnType。由于您分配的函数还没有 peek 属性,您可以执行以下两项操作之一:

  • 使界面上的peek 功能可选
  • 使用类型断言忽略错误。

我会使用第二种方法,因为您目前正在构建函数,您将很快分配缺少的属性:

var result:MyReturnType = <MyReturnType>function (name) {
return 'A';
};

关于typescript - 函数作为其他函数的属性 - 正确定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48803775/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com