2017-06-20 24 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); 
相关问题