我正在尝试使用 ES2015 模块语法和 TypeScript 组合一些类。每个类在 .d.ts
文件中实现一个接口(interface)。
这是问题的 MWE。
在 .d.ts
文件中我有:
interface IBar {
foo: IFoo;
// ...
}
interface IFoo {
someFunction(): void;
// ...
}
我的导出是:
// file: foo.ts
export default class Foo implements IFoo {
someFunction(): void {}
// ...
}
// no errors yet.
我的导入是:
import Foo from "./foo";
export class Bar implements IBar {
foo: IFoo = Foo;
}
这里的错误是:
error TS2322: Type 'typeof Foo' is not assignable to type 'IFoo'.
Property 'someFunction' is missing in type 'typeof Foo'.
这里有什么想法吗?
最佳答案
当您说 foo: IFoo = Foo;
时,您正在将 class Foo
分配给 IFoo
。然而,IFoo
接口(interface)是由该类的实例 实现的。你需要做的:
foo: IFoo = new Foo;
关于javascript - typescript TS2322 : Type 'typeof Foo' is not assignable to type 'IFoo' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33536116/