小编bla*_*age的帖子

对“此条件将始终返回“假”,因为类型“a”和“b”没有重叠”的逻辑感到困惑。

我刚刚开始学习 TypeScript,目前正在阅读手册。TypeScript 捕获逻辑错误的要点之一是,它给出了以下示例:

const value = Math.random() < 0.5 ? "a" : "b";
if (value !== "a") {
  // ...
} else if (value === "b") {
  // This condition will always return 'false' since 
  // the types '"a"' and '"b"' have no overlap.
  // Oops, unreachable
}
Run Code Online (Sandbox Code Playgroud)

可能只是有些东西我没有直接看到,但我不明白为什么这会引发错误。我是这样看的:

  • value可以是a或者b
  • 第一个 if 语句检查是否value不是a
  • else-if 语句检查值是否 b,如果不是,则始终为a(if valueis not a; it's b)

那么为什么说value === "b"总会回来呢 …

javascript logic if-statement typescript

8
推荐指数
0
解决办法
3471
查看次数

标签 统计

if-statement ×1

javascript ×1

logic ×1

typescript ×1