是否有任何方法來定義可在索引器中用作字符串鍵的typescript文字類型?用作索引器鍵的Typescript文字類型
type TColorKey = 'dark' | 'light';
interface ColorMap {
[period: TColorKey]: Color;
}
這引發錯誤:An index signature parameter type must be 'string' or 'number'.
是否有任何方法來定義可在索引器中用作字符串鍵的typescript文字類型?用作索引器鍵的Typescript文字類型
type TColorKey = 'dark' | 'light';
interface ColorMap {
[period: TColorKey]: Color;
}
這引發錯誤:An index signature parameter type must be 'string' or 'number'.
是的,這可能是由於一種稱爲Mapped types新功能。只要確保你使用的是typScript編譯器的夜間版本([email protected]
),因爲它尚未穩定版本(當時我寫這篇文章)。
type TColorKey = "dark" | "light";
type TColorMap = { [P in TColorKey]: Color };
一個多觀察 如果你想使用編輯器'打字稿@ next'語言規範(所以它不會引發錯誤): 1)運行'NPM安裝-g打字稿@ next' 2)添加'「typescript.tsdk」:「yourGlobalNpmPath/node_modules/typescript/lib」到'settings.json' –
您可以使用枚舉? – Amy
@Amy不,您只能將數字常量分配給枚舉,而不是字符串。這就是字符串文字類型存在的原因。對於VS代碼 –