2017-08-11 12 views
1

私はtypescriptですについての詳細を学び、最近、このコードを書いています:私は、現在のように感じるこの機能マップのタイプスクリプトを改善するにはどうすればよいですか?

type Operator = '+' | '-' | '*' | '/' | undefined; 

const actions: { [operator: string]: Function } = { 
    '+': (a: number, b: number) => a + b, 
    '-': (a: number, b: number) => a - b, 
    '*': (a: number, b: number) => a * b, 
    '/': (a: number, b: number) => a % b === 0 
     ? a/b 
     : null, 
    undefined: (a: number) => a, 
}; 

をそのかなり悪い型付けと何とか1つのまたは2つの数値を取る機能のアイデアを抽出することで、よりきちんとした可能性があり別のタイプですか?

コードの改善方法についてご意見はありますか?

+3

これはhttps://codereview.stackexchange.com/のために良い質問だろう – Kai

答えて

3

あなたは関数型を定義することができます。

その後
type Operation = (a: number, b: number) => number; 

const actions: { [operator: string]: Operation } = { 
    ... 
} 
関連する問題