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

时间:2017-08-16 09:39:47

标签: json typescript types typing

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

  

类型'{blabbla ...'的参数不能分配给参数   输入'关税' 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;

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

2 个答案:

答案 0 :(得分:0)

你有;

tarrif

代码的第一部分,和;

tariff
在JSON中

......

答案 1 :(得分:0)

解决方案是使用resolve(fakeData.tariffs)代替resolve(fakeData)