TS - 为什么我的 class 类型与 JSON 对象不兼容?

TS - why are my class types not compatible with JSON object?

我在 node.js 中使用打字稿工作,我定义了 Tariff 和 Tariffs 类。我还有用 JSON 创建的假数据,应该与 类 兼容。但是我在 resolve() 方法中遇到错误:

Argument of type '{ blabbla... ' is not assignable to parameter of type 'Tariffs | PromiseLike'.

export class FakeDataProvider implements IDataProvider {

  loadTariffs?(request: LoadTariffsRequest): Promise<Tariffs>{
    return new Promise<Tariffs>((resolve, reject) => {
      resolve(fakeTariffs);
    });
  }

}

接下来我在另一个文件中定义并导出了 类:

export class Tariff {
  tariffOptionId: number = 0;
  name: string = '';
}

export class Tariffs {
    // tariff: Tariff = new Tariff(); // this does not work
    tariff: Array<Tariff> = []; // this does not work too
}

然后我在另一个文件中导出了假模型 JSON 数据:

let fakeTariffs =     
  {
    'tariffs': {
      'tariff': [
        { "name": "tariff1", "tariffOptionId": 1 },
        { "name": "tariff2", "tariffOptionId": 2 },
        { "name": "tariff3", "tariffOptionId": 3 }
      ]
    }
  };

export default fakeTariffs;

我做错了什么,我该如何修改 类 以便与假数据兼容?

你有;

tarrif

在代码的第一部分,并且;

tariff

在 JSON...

解决方案是使用 resolve(fakeData.tariffs) 而不是 resolve(fakeData)