'()=> Promise <t>'不能分配给'Promise <t>'类型

时间:2018-09-28 18:19:16

标签: typescript async-await

我有一个界面:

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

1 个答案:

答案 0 :(得分:2)

问题是getChildren上的ITreeViewItem不是返回承诺的函数,而只是一个承诺。您可以将其声明为方法,通过添加()

返回Promise。
export interface ITreeViewItem {
    getChildren() : Promise<ITreeViewItem[]>;
}
相关问题