2017-06-20 75 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); 
相關問題