是否可以在 Typescript 中将类型分配给变量,其值可以是"any"中的任何值,但有一个(或任何其他数量(。例如:
let variable: NOT<any, 'number'>
此变量绝对可以是除"数字"之外的任何类型。
在 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