2017-09-05 82 views
1

一個初始化這是我在冠軍班給我的A型文字屬性不能有打字稿

錯誤「A型文字屬性不能有初始值設定」

如果我刪除title它的做工精細,我使用Angular 4.3.1

export class MyClass{ 
    data:[ 
     { 
     blood:string; 
     title:string = 'Blood Pressure - Systolic (mm/Hg)'; 
     } 
    ] 
} 

非常感謝。

回答

2

在你的對象中,當你對它們也有價值時,你不能指定屬性的類型。

在這種情況下,您尚未指定對象,但它是類型。我想你可以創建一個接口(shape)您陣列的項目和使用強類型。

interface Item { 
    blood: string, 
    title: string 
} 

export class MyClass{ 
    data: Item[] = []; 
} 

這裏您數組保存與shapeItem項目。而且,您可以將數據推送到其對應的形狀該項目。

data.push({ 
    blood: 'B (III) Rh (+)', 
    title: 'Blood Pressure - Systolic (mm/Hg)' 
}); 
1

創建您要創建的對象的類。

export class MyData { 
    blood: string; 
    title: string; 
} 

喲你其他班級,你現在可以使用它。

export class MyClass{ 
    data: MyData[] = []; 
    data.push({ 
     blood: 'foo', 
     title: 'Blood Pressure - Systolic (mm/Hg)' 
    }); 
} 
0

好像你正在嘗試直接製作對象而不是類。或者你正在嘗試創建一個類,其中一些變量具有默認值。對於相同的更好的方法是這樣的:

export class SomeClass { 
param1: string[]; 
param2: string; 

constructor(param1?: string[], 
      param2?: string) { 

    this.param1 = param1 || []; 
    this.param2 = param2 || ''; 
} 
} 
0

使用一個接口來定義數據類型:

interface IInterface { 
    blood: string, 
    title: string 
} 

export class MyClass { 
    data: IInterface[] = []; 
} 

或者你改變你做它的方式:

export class MyClass { 
    data:[ 
     { 
     blood: string; 
     title: string; 
     } 
    ]; 
}