看下面这段代码:
let x = Math.random() < 0.5 ? 10 : "hello world!"; x = 1; console.log(x); x = "goodbye!"; console.log(x);
没有语法错误:
请注意,这些分配中的每一个都是有效的。 即使在我们第一次赋值后观察到的 x 类型变成了数字,我们仍然能够为 x 分配一个字符串。 这是因为 x 的声明类型(declared type) - x 开头的类型 - 是 string | number,并且始终根据声明的类型(declared type)检查可分配性。
更多Jerry的原创文章,尽在:“汪子熙”: