表达式 1==2
导致 TypeScript 给出错误 Operator '==' cannot be applied to types '1' and '2'
。 TypeScript 将这些值视为不同类型的原因是什么?将其专门应用于数字是设计决定,还是整个打字系统的副产品?允许比较文字会造成什么危害?
最佳答案
1
和 2
在这种情况下被认为是所谓的文字数字。这意味着值 1
的类型为 1
,因此只能是 1
,与 2
相同。鉴于此,1==2
的表达式没有意义,因为 1
永远不可能是 2
,或者更准确地说,它们的类型不匹配,你无法将苹果与橙子进行比较。
以下是有关默认假定文字类型的基本原理和详细信息:
关于文字类型:
关于文字类型为何有用的众多示例之一:
关于javascript - 为什么 TypeScript 将每个数字视为自己的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45980370/