0
我有,我想說一個類型的場景:聯合和相交類型的操作順序?
export interface ItemSchema {
[attrName: string]:
{ type: 'number', default?: number, readOnly?: boolean} |
{ type: 'string', default?: string, readOnly?: boolean} |
{ type: 'boolean', default?: boolean, readOnly?: boolean} |
{ type: 'date', default?: Date, readOnly?: boolean} |
{ type: 'object', default?: object, readOnly?: boolean}
}
(因爲我是定義模式,對數據得到JSON格式,FWIW各地通過在運行時是可用的,這就是接口爲模式)。
這很方便,因爲在我的實際類型定義中可以有{ type: 'number', default: 2 }
而不是{ type: 'number', default: 'potato' }
。
我想拉出readOnly位(和其他的東西在這裏爲簡單起見省略)到一個單獨的部分。我其實可以用{ readOnly?: boolean } &
加上上面的堆棧,它似乎可以工作,但這取決於這些操作的順序。和沒有充分記錄的運營商(至少不在我能找到的地方)。 (括號內,我也可以使用圓括號,看起來像{} & ({} | {} | {})
,但是這使得我的棉絨發狂,所以我不確定是否在這裏正式支持圓括號或者它只是一個意外)。
那麼,有沒有一個地方的操作順序定義爲這些界面組成操作?我不想編寫代碼,因爲編譯器中沒有記載的怪癖而運行,並讓它在2.3中破解或者其他。