2017-06-07 30 views
0

我正在創建一個打字稿對象來表示在我的應用程序中的讀/寫權限,但我在分配變得毫無意義的變量時遇到了這個怪癖對我來說。希望有人可以看看這個,告訴我我做錯了什麼。因爲它是一個常量或只讀屬性,所以不能指定爲'布爾'

export class Permission { 
     watcher:Object = { read:Boolean = true}; 
} 

上面的代碼結果,其中說,一個錯誤:

[TS]無法分配到「布爾」,因爲它是一個常量或只讀屬性。 const布爾值:BooleanConstructor

我可能只是在做一些愚蠢的事情,所以提前道歉,如果這是超級新手。

回答

2

如果您打算鍵入watcher財產是財產read一個對象,那麼就應該輸入這樣的:

export class Permission { 
    // The part after the ":" is the type definition of the property. 
    // The part after "=" is its value 
    watcher: { 
    read: boolean 
    } = { read: true }; 
} 

什麼,你現在有可能是一個語法錯誤。你可能不希望覆蓋內置構造BooleanBoolean = true

1

您試圖分配一個JSON對象與{ read: true },它聲明爲布爾類型僅僅是多餘的(因爲truefalse總是布爾)打字稿推斷類型,它是一個無效的JSON結構。

JSON具有以下格式:

{ 
    key: value, 
    key2: value2 
} 

通知沒有等號(= )在JSON,只到的鍵和值分開。

現在我看到類語法讓你感到困惑,因爲它的確有一個等號,但它僅用於賦值。分配後,您不需要有等號。

你的最後一類的定義應該是這個樣子:

export class Permission { 
    watcher = { read: true }; 
} 

你會需要更復雜的對象的接口,如果你想在其他物體可選變量或依賴關係。 對於一個小對象的打字稿會通過類型來理解結構。

相關問題