![](/img/trans.png)
[英]TypeScript class inheritance behaving differently than its ES6 equivalent
[英]Is the not operator (!) behaving differently in TypeScript?
以下值在 JavaScript 中被认为是“假的”:
TypeScript 对 not 运算符 (!) 的处理方式不同还是相同?
Typescript 的设计目标之一是:
保留所有 JavaScript 代码的运行时行为。
这意味着所有 Javascript 代码在 Typescript 代码中的行为都相同。 没有例外。 您可能会遇到额外的语义错误,但如果您忽略这些错误,行为仍然相同。
因此,如果您想知道是否有诸如!
在 TS 中表现不同,答案永远是否定的
根据定义,发出的 JavaScript 与 JavaScript 的工作方式相同。
至于编译器在设计时识别为假的类型,简短的回答是“除NaN
之外的所有类型”:
const f0 = !false // true
const f1 = !0; // true
const f2 = !0n; // true
const f3 = !""; // true
const f4 = !null; // true
const f5 = !undefined; // true
const f6 = !NaN; // boolean (no NaN type in TypeScript)
现在 TypeScript 没有对应于NaN
的数字文字类型; 它只被视为类型number
。 由于一个number
可以是真number
也可以是假值,所以!NaN
的类型只是boolean
。 有一个公开的建议 microsoft/TypeScript#28682为NaN
(以及Infinity
和-Infinity
)引入数字文字,但我不知道这是否会得到解决。
好的,希望有帮助; 祝你好运!
TypeScript 是 JavaScript 的超集。
Typescript 只为 JavaScript 添加了附加功能。 它不会否定 JavaScript 的任何特性或功能。
JavaScript 中的错误在 TypeScript 中也是错误的。 在 JavaScript 中正确的在 TypeScript 中也是正确的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.