![](/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.