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);
意思为类型“null”的参数不能赋值给类型“string | number”的参数
当然想解决此类问题 只需要在参数加上 null 和 undefined 即可