never类型表示永不存在的值的类型。
用途
function error(msg:string):never{
throw new Error(msg)
}
never类型可以赋值给各类型 但是没有任一类型赋值给never
let neverT:never
let neverT1:never
let anyT:any
let strT:string
neverT = anyT
neverT =strT
anyT = neverT
strT = neverT
never 应用
interface a {
type:'a'
}
interface b {
type:'b'
}
interface c{
type:'c'
}
type All = a|b|c
function neverT(val:All){
switch(val.type){
case 'a':
console.log('a')
break;
case 'b':
console.log('b')
break;
default:
let checkVal:never = val
break;
}
}
neverT({type:'c'})