gpt4 book ai didi

casting - 如何在 TypeScript 中实现既可调用又具有属性的接口(interface)?

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

给定界面

interface FooWithBar {
():void;
bar():void;
}

如何编写实现?

function foo(){

}
foo.bar = function(){

};

不起作用,因为它会抛出错误,“属性 'bar' 在类型 '() => void 上不存在”。但是,如果我将 foo 的类型声明为 FooWithBar

```` var foo: FooWithBar = function () {

};
foo.bar = function () {

};

````

我收到另一个错误,“类型 '() => void' 不可分配给类型 'FooWithBar'。属性 'bar' 在类型 '() => void' 中丢失”。

我该如何解决这个第 22 条军规?

最佳答案

function FooWithBar() {
// ...
}
module FooWithBar { // n.b. can use 'namespace' keyword here instead of 'module' if you like
export function bar() {
// ...
}
}

这是一些避免出现在“仅代码答案”审阅队列中的文本。

关于casting - 如何在 TypeScript 中实现既可调用又具有属性的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33444458/

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