TypeScriptでエクスポートされた関数の型を強制する方法は?
私はこれを持っていました:
export const counterReducer: ActionReducer<number> = (state = 0, action: Action) => {
const at = CounterActions;
switch (action.type) {
case at.incrementId:
return state + 1;
case at.decrementId:
return state - 1;
case at.resetId:
return 0;
default:
return state;
}
};
残念ながら、export function 形式に書き直さなければなりませんでした(これがないと AoT は動作しません):
export function counterReducer(state = 0, action: Action): number {
const at = CounterActions;
switch (action.type) {
case at.incrementId:
return state + 1;
case at.decrementId:
return state - 1;
case at.resetId:
return 0;
default:
return state;
}
}
ご覧の通り、私は関数全体の型(ActionReducer<number>)を失っており、これは私にとって受け入れられません。
質問は次の通りです:
export function の構文はどのように型付けできますか?定義の時点でどのように型を付けられますか?
回答 #1
このように型付き関数をエクスポートできます:
export const counterReducer = (state = 0, action: Action) => ({
..
} as ActionReducer<number>);
