我有一個簡單的類Board
參數width
,height
和types
在構造函數中。高度和寬度將始終爲number
,但types
是任何類型的數組。使用參數作爲通用類型,並給它一個默認的賦值
我想要做的是使用通用類型<T>
捕獲types
參數的類型。然後,T
可用於返回使用this.types
的另一個功能。問題是我也想將默認類型設置爲數組數組。
這是我認爲可能的工作,但我目前得到錯誤Type 'number[]' is not assignable to Type 'T[]' Type 'number' is not assignable to Type 'T'
。
export class Board<T> {
constructor(width: number = 8, height: number = 8, types: T[] = [0, 1, 2, 3, 4, 5, 6]) {
this.width = width;
this.height = height;
this.types = types;
}
getTypes(): T[] {
return this.types;
}
}
我在做什麼錯?或者這種設置甚至可能嗎?
我最終想要的是將T
分配給this.types
最終實例化後的任何類型。如果我打電話new Board(8, 8, ['a', 'b', 'c', 'd']);
,我想知道T
應該是string
。如果我只打電話new Board()
它會知道T
應該是number
。使用advanced types
不能使用數字作爲默認值的數組,T's的'數組,因爲你不知道是否T''會'number'。如果你打電話給新董事會(8,8)',會發生什麼? –
好的,這是有道理的,但我怎麼能設置'T'依賴於'this.types'分配給什麼? – gliemezis