[英]How to get typeof generic model's parameter inside of another type?
我有一個采用類型 T 的接口:
export interface ValueTimestampModel<T> {
value: T;
timestamp: string;
}
我有一個類型應該使用上面的類型通過將 T 的每個參數轉換為 ValueTimestampModel 來轉換給定的 T 類型的ValueTimestampModel
:
export type ModelWithTimestamp<T> = {
[P in keyof T]?: ValueTimestampModel<typeof T[P]>
}
所以期望的結果將是 -> 如果我們有 model:
{
street: string;
streetNo: number;
}
那么ModelWithTimestamp
版本應該是這樣的:
{
street: {
value: string,
timestamp: string
},
streetNo: {
value: number,
timestamp: string
}
}
不幸的是,部分typeof T[P]
返回編譯錯誤:
'T' only refers to a type, but is being used as a value here.
在這種情況下,typescript 似乎不接受typeof
。 有沒有其他方法可以實現我正在尋找的東西?
您不需要typeof
, T[P]
已經是類型T
中的屬性P
的類型:
export interface ValueTimestampModel<T> {
value: T;
timestamp: string;
}
export type ModelWithTimestamp<T> = {
[P in keyof T]?: ValueTimestampModel<T[P]>
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.