为什么函数 foo 在Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'.
行中报告错误return value;
而函数 bar 可以正常工作?
function foo(value: string | number | null): string | null {
if (typeof value !== 'string' && value !== null) {
throw new Error();
}
return value;
}
function bar(value: string | number): string {
if (typeof value !== 'string') {
throw new Error();
}
return value;
}
答案 0 :(得分:1)
您的代码在带有严格的null检查的Typescript 3.2.2中不会引发类型错误。
all