0

我刚开始使用 TypeScript,遇到了我正在使用的库的类型定义错误的情况。在我的例子中,库是Massive,js这里是类型定义

问题是某些函数应该返回Promise<T[]>or Promise<T>,但打字说它总是Promise<T[]>

  interface Table<T> {
    // other functions omitted for simplicity
    save(data: object): Promise<T[]>;
    insert(data: object): Promise<T[]>;
    update(dataOrCriteria: object, changesMap?: object): Promise<T[]>;
  }

如何修复上述函数,以便它们返回Promise<T[]>or Promise<T>

4

1 回答 1

2

您可以定义多种类型。

interface Table<T> {
    // other functions omitted for simplicity
    save(data: object): Promise<T | T[]>;
    insert(data: object): Promise<T | T[]>;
    update(dataOrCriteria: object, changesMap?: object): Promise<T | T[]>;
  }

或者在使用库时只需将 T 设为一个项目数组。

于 2017-06-25T16:43:09.407 回答