我有一个界面:
export interface ITreeViewItem {
getChildren: Promise<ITreeViewItem[]>;
...
及其实现:
export class MyClass implements ITreeViewItem {
public async getChildren(): Promise<ITreeViewItem[]> {
let result = await this._fileSystemService.getContents(this.fullPath);
let items = result.map(x => {
let y: ITreeViewItem = null;
return y;
});
return items;
}
...
对我来说看起来不错,但出现错误:
“ getChildren”属性的类型不兼容。
类型'()=> Promise'不能分配给'Promise'类型。
类型(()=>承诺”中缺少属性'then'。
我的getChildren
实现有什么问题?
我正在使用 TypeScript 2.5.3 。
答案 0 :(得分:2)
问题是getChildren
上的ITreeViewItem
不是返回承诺的函数,而只是一个承诺。您可以将其声明为方法,通过添加()
export interface ITreeViewItem {
getChildren() : Promise<ITreeViewItem[]>;
}