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)
。
我在 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)
。