1
export interface LoadTodos {
type: "LOAD_TODOS_ACTION"
}
export interface AddTodo {
type: "ADD_TODO_ACTION",
todo: Todo
}
export type KnownAction = LoadTodos| AddTodo;
目前我在做这个:如何将字符串转换为Typescript中的字符串文字类型?
CallAction({ type: "LOAD_TODOS_ACTION" });
我想这样做:
CallAction("LOAD_TODOS_ACTION");
或理想:
CallAction<LoadTodos>();
我应该如何落实CallAction?它甚至有可能吗?
function CallAction<T extends KnownAction>()
{
type P1 = T["type"];
doSomethingWithAction({type:T.type}); // type property is an instance property so cannot be retrieved obviously
//or
type P1 = T["type"];
doSomethingWithAction({type:P1}); // P1 is a type not string
}
LoadTodos包含类型:“LOAD_TODOS_ACTION”,所以应该有办法从另一个获得一个。