可与"+"运算符一起使用的泛型类型



在TypeScript中,有没有办法描述可以与"+"运算符一起使用的泛型类型?像这样:

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

T应该扩展什么,或者应该如何定义?

我希望能够按如下方式调用add()

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

试试这个:

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);

最新更新