所谓联合类型就是指:可以指定多种数据类型,扩大数据类型范围。

let data: string | number | boolean...

TS并不推荐使用

null 和 undefined 是所有类型的子集 有些情况 即使你定义参数类型 传入 null 或者 undefined 也不会报错的

当你 去编译 TS 文件 加上后缀 --strictNullChecks

比如这样tsc filesName.ts --strictNullChecks

var func = function (value: number | string) {
 var type = typeof value;
 if (typeof value === "number") {
  return "your number is " + value;
 }
 else if (typeof value === "string") {
  return "your name is " + value;
 }
};
var result = func(null);

clipboard.png

意思为类型“null”的参数不能赋值给类型 “string | number” 的参数

当然想解决此类问题 只需要在参数加上 null 和 undefined 即可


Milo
7 声望3 粉丝

to yound to simple.