[英]A type literal property cannot have an initializer in TypeScript
这是我的标题课给我一个错误
“类型文字属性不能有初始值设定项”
如果我删除title
的工作正常,我使用Angular 4.3.1
export class MyClass{
data:[
{
blood:string;
title:string = 'Blood Pressure - Systolic (mm/Hg)';
}
]
}
非常感谢。
在对象中,当您还具有值时,无法指定属性的类型。
在这种情况下,您没有指定对象,但它是类型。 我认为您可以为数组的项创建一个接口( shape)
,并将其用于强类型。
interface Item {
blood: string,
title: string
}
export class MyClass{
data: Item[] = [];
}
在这里,您的数组包含具有Item
shape
Item
。 并且您可以将数据推送到与项目形状相对应的数据中。
data.push({
blood: 'B (III) Rh (+)',
title: 'Blood Pressure - Systolic (mm/Hg)'
});
好像你试图直接创建一个对象而不是一个类。 或者您正在尝试创建一个类,其中某些变量具有默认值。 对于同样的更好的方法看起来像:
export class SomeClass {
param1: string[];
param2: string;
constructor(param1?: string[],
param2?: string) {
this.param1 = param1 || [];
this.param2 = param2 || '';
}
}
为您要创建的对象创建一个类。
export class MyData {
blood: string;
title: string;
}
在您的其他课程中,您现在可以使用它。
export class MyClass{
data: MyData[] = [];
data.push({
blood: 'foo',
title: 'Blood Pressure - Systolic (mm/Hg)'
});
}
使用接口定义数据类型:
interface IInterface {
blood: string,
title: string
}
export class MyClass {
data: IInterface[] = [];
}
或者你改变你的方式:
export class MyClass {
data:[
{
blood: string;
title: string;
}
];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.