例如,我希望以下兩種型別 - ViewModel 和 SaveModel 具有相同的鍵但不同的值型別,
type User = {
id: number;
name: string;
age: number;
}
type Address = {
street: string;
zip: string;
}
type ViewModel = {
user: User;
address: Address;
}
type SaveModel = {
user: number;
address: string;
}
如何在打字稿中做到這一點?
uj5u.com熱心網友回復:
由于 ViewModel 中的屬性型別與 SaveModel 中的屬性型別之間似乎沒有任何關系,因此您可以創建一個型別來約束第二種型別具有相同的鍵:
type MustHaveKeys<V, S extends Record<keyof V, any>> = S;
type SaveModel = MustHaveKeys<ViewModel, {
user: number;
address: string;
}>
type SaveModelBad = MustHaveKeys<ViewModel, {
//user: number;
address: string;
}>
游樂場鏈接
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/390799.html
標籤:打字稿
