在Typescript中是否可以为变量分配类型,该变量的值可以是“ any”中的任何值,但可以是一个(或其他任何数量)。例如:
let variable: NOT<any, 'number'>
除了'number'之外,此变量绝对可以是任何类型。
答案 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