2019-10-23never 和null类型

//union type
let unionType: number | string | boolean =12;
unionType = '12';
unionType = false;
unionType = {};//error



//检查类型
let checkType = 20;
if(tyoeof checkType === 'number'){
  console.log('number')
} 

//null undefined
let myNull = 12;
myNull = null; //报错error 因为定义时,类型确定了


//never  任何类型的子类型 可以复制给任何类型 
let x:never;
x = 123; //error 不能将其他类型赋值给never类型
//使用场景1 抛出异常
function error (message:string):never {
  throw new Error(message);
}
//使用场景2 死循环
function loop:never{
  while(true){
  }
}
//never 是任何类型的子类型
let y :number;
y = ((message)=>{
  throw new Error(message)
})();

你可能感兴趣的:(2019-10-23never 和null类型)