TypeScript类型错误,类型为字符串|数字|空,但不具有字符串|数字

时间:2019-01-11 20:54:05

标签: typescript

为什么函数 foo Type 'string | number' is not assignable to type 'string'. Type 'number' is not assignable to type 'string'.行中报告错误return value;而函数 bar 可以正常工作?

TypeScript Playground

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;
}

1 个答案:

答案 0 :(得分:1)

您的代码在带有严格的null检查的Typescript 3.2.2中不会引发类型错误。

all