[英]typescript get type of array value like in case of keys?
我可以做這個
const keys = {
"hi": {name: "ho"}
}
type U = [keyof typeof keys][0]; // "hi"
我也可以使用數組值嗎?
const data = [
{ name: "hi" }
];
type T = typeof data[0]["name"]; // string not "hi"
只需將as const
添加到您的數據中:
const data = [
{ name: "hi" }
] as const;
沒有as const
,數據被推斷為Array<{name: string}>
。 您不需要as const
作為keys
,因為它被推斷為{hi: {name: string}}
因為數組的元素可以在運行時改變,TS 只會將數據類型推斷為Array<{ name: string }>
。 您必須將data
數組的類型顯式設置為readonly
,因此 TS 可以將數據數組中第一個元素的類型推斷為{name: "hi"}
。
解決方案是將as const
添加到數據數組中。
const data = [
{name: "hi"}
] as const;
// this will make TS infer the type for data as readonly[{ readonly name: "hi";}]
看ts 操場上的演示
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.