2017-06-20 3 views
2

TypeScriptでは、 "+"演算子で使用できる汎用型を記述する方法はありますか?以下のような何か:"+"演算子で使用できる汎用型

function add<T extends ?>(v1: T, v2: T): T { 
    return v1 + v2; 
} 

T何を拡張する必要があり、またはどのようにそれが定義されなければなりませんか?

私は次のようにadd()を呼び出すことができるようにしたい:

add(1, 2); // 3 
add("a", "b"); // "ab" 
+0

は、両方の引数が同じ型を持っている必要があり要件がありますか?あるいは、一方は '数値 'で、もう一方は'文字列 'でしょうか? –

答えて

2

はこれを試してみてください:

function add<T extends (number | string)>(v1: T, v2: T): T { 
    return <any>v1 + <any>v2; 
} 

// Valid uses: 
add(1, 2); 
add('a', 'b'); 
add<number>(1, 2); 
add<string>('a', 'b'); 

// Errors: 
add(1, 'a'); 
add(true, false); 
add<number>('a', 'b'); 
add<string>(1, 2); 
関連する問題