【发布时间】:2021-08-19 13:10:43
【问题描述】:
谁能解释为什么第二个变种不起作用?是bug吗?
const prints = (s: string): void => console.log(s);
var x: string | number = Date.now() % 2 ? "test" : 5;
// 1st: working
if (typeof x === "string") {
prints(x);
}
// 2nd: not working
var typex = typeof x === "string";
if (typex) {
prints(x);
}
第二个变种显示以下错误:
'string | 类型的参数number' 不可分配给“string”类型的参数。 类型“数字”不可分配给类型“字符串”
【问题讨论】:
-
这不是错误,但根本不支持。后者的代码流分析会变得太复杂太快。
-
你可能想看看this issue或this issue。
-
@ASDFGerte 你的答案是最好的
标签: javascript string typescript typeof