这是我的标题课,给我一个错误
"类型文字属性不能有初始化程序"
如果我删除其title
工作正常,我使用Angular 4.3.1
export class MyClass{
data:[
{
blood:string;
title:string = 'Blood Pressure - Systolic (mm/Hg)';
}
]
}
非常感谢。
答案 0 :(得分:5)
在您的对象中,当您还具有值时,无法指定属性的类型。
在这种情况下,您尚未指定对象,但它是类型。我认为您可以为数组的项创建一个接口(shape)
,并将其用于强类型。
interface Item {
blood: string,
title: string
}
export class MyClass{
data: Item[] = [];
}
此处您的数组包含shape
Item
的项目。并且您可以将数据推送到与项目形状相对应的数据中。
data.push({
blood: 'B (III) Rh (+)',
title: 'Blood Pressure - Systolic (mm/Hg)'
});
答案 1 :(得分:2)
好像你试图直接制作一个对象而不是一个类。或者您正在尝试创建一个类,其中某些变量具有默认值。对于同样的更好的方法看起来像:
export class SomeClass {
param1: string[];
param2: string;
constructor(param1?: string[],
param2?: string) {
this.param1 = param1 || [];
this.param2 = param2 || '';
}
}
答案 2 :(得分:1)
为您要创建的对象创建一个类。
export class MyData {
blood: string;
title: string;
}
在您的其他课程中,您现在可以使用它。
export class MyClass{
data: MyData[] = [];
data.push({
blood: 'foo',
title: 'Blood Pressure - Systolic (mm/Hg)'
});
}
答案 3 :(得分:0)
使用界面定义数据类型:
interface IInterface {
blood: string,
title: string
}
export class MyClass {
data: IInterface[] = [];
}
或者你改变你的方式:
export class MyClass {
data:[
{
blood: string;
title: string;
}
];
}