![](/img/trans.png)
[英]How to map an object to another interface type when the property names are the same using typescript
[英]How to map each type of properties in object to a property in interface?
我正在嘗試為打字稿中的 react-redux 項目創建調度操作界面。 我希望能夠基於另一個具有可以調度的所有類型的對象來決定操作界面中的類型屬性。
輸入:
const FooActions = {
REMOVE_FOO: "removeFOO",
ADD_FOO: "addFOO",
UPDATE_FOO: "updateFOO",
};
interface FooActionType {
type: "MAP ALL property values from FooActions";
payload: any;
}
預期輸出:
interface FooActionType {
type: "removeFOO" | "addFOO" | "updateFOO";
payload: any;
}
要獲取對象中值的類型,您可以使用T[keyof T]
(其中T
是類型)。 要在FooActions
保留字符串文字類型,您需要使用類型斷言。
鑒於上述情況,創建FooActionType
很簡單:
const FooActions = {
REMOVE_FOO: "removeFOO",
ADD_FOO: "addFOO",
UPDATE_FOO: "updateFOO",
} as const;
interface FooActionType {
type: typeof FooActions[keyof typeof FooActions];
payload: any;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.