azz*_*azz 13 javascript typescript ecmascript-6
我正在尝试使用TypeScript的ES2015模块语法编写一些类.每个类在.d.ts
文件中实现一个接口.
这是问题的MWE.
在.d.ts
我有一个文件中:
interface IBar {
foo: IFoo;
// ...
}
interface IFoo {
someFunction(): void;
// ...
}
Run Code Online (Sandbox Code Playgroud)
我的出口是:
// file: foo.ts
export default class Foo implements IFoo {
someFunction(): void {}
// ...
}
// no errors yet.
Run Code Online (Sandbox Code Playgroud)
我的导入是:
import Foo from "./foo";
export class Bar implements IBar {
foo: IFoo = Foo;
}
Run Code Online (Sandbox Code Playgroud)
这里的错误是:
error TS2322: Type 'typeof Foo' is not assignable to type 'IFoo'.
Property 'someFunction' is missing in type 'typeof Foo'.
Run Code Online (Sandbox Code Playgroud)
这里有什么想法?
bas*_*rat 18
当你说foo: IFoo = Foo;
你要分配课程 Foo
时IFoo
.但是,该接口IFoo
是由该类的实例实现的.你需要这样做:
foo: IFoo = new Foo;
Run Code Online (Sandbox Code Playgroud)