我有一个具有私有属性的类,但是当我尝试使用这个元素创建一个数组时,我会得到以下错误:
error TS2322: Type '{ "id": number; "totalTime": number; "team": { "id": number; "name": string; }; }[]' is not assignable to type 'Training[]'.
[0] Type '{ "id": number; "totalTime": number; "team": { "id": number; "name": string; }; }' is not assignable to type 'Training'.
[0] Property 'remainingTime' is missing in type '{ "id": number; "totalTime": number; "team": { "id": number; "name": string; }; }'数组类:
import { TEAMS } from './mock-teams';
import { Training } from './training';
export var TRAININGS: Training[] = [
{"id": 0, "totalTime": 60, "team": {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] } },
{"id": 1, "totalTime": 60, "team": {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] } }
];培训班:
export class Training {
private remainingTime: number = 0;
constructor(
public id: number,
public totalTime: number,
public team?: Team) {
}
}我不明白为什么打字稿抱怨一个私人财产,甚至不在构造函数中。
发布于 2016-03-13 20:34:34
按照您的做法,您正在创建一个类型为Object[]的数组。您需要做的是调用如下所示的构造函数,告诉转换程序您正在创建一个培训对象:
import { TEAMS } from './mock-teams';
import { Training } from './training';
export var TRAININGS: Training[] = [
new Training(0,60, {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] }),
new Training(1,60, {"id": TEAMS[0]['id'], "name": TEAMS[0]['name'] })
];https://stackoverflow.com/questions/35975405
复制相似问题