9-学习TypeScript(never类型)

78 阅读1分钟

never类型表示永不存在的值的类型。

用途

  • 1、抛出异常或没有返回值的函数表达式
 function error(msg:string):never{
  throw new Error(msg)
}
  • 2、箭头函数表达式
  • 3、变量

never类型可以赋值给各类型 但是没有任一类型赋值给never

let neverT:never
let neverT1:never
let anyT:any
let strT:string
neverT = anyT //不能将类型“any”分配给类型“never”
neverT =strT //不能将类型“string”分配给类型“never”
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 //不能将类型“c”分配给类型“never”
    break;
  }
}
//在这里就可以排查出是default中c报的错
neverT({type:'c'})