繁体   English   中英

类型文字属性在TypeScript中不能有初始值设定项

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM