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」というタイプが含まれています。そのため、一方を他方から取得する方法が必要です。