几乎来自“ any”的任何类型(任何,除了一个)

时间:2018-10-05 18:21:18

标签: typescript

在Typescript中是否可以为变量分配类型,该变量的值可以是“ any”中的任何值,但可以是一个(或其他任何数量)。例如:

let variable: NOT<any, 'number'>

除了'number'之外,此变量绝对可以是任何类型。

1 个答案:

答案 0 :(得分:4)

在Typescript中有Exclude帮助程序,它利用了v2.8中引入的条件类型。 Exclude<T, U>只是T extends U ? never : T,即,如果下面的示例中的val恰好是number,则由于never类型而将失败,否则该类型是任何类型的T

function test<T>(val: Exclude<T, number>): void {
    console.log('not a number!');
}

test('a');
test([1]);
test(1); // fails