以下值在 JavaScript 中被视为“虚假”:
- 错误的
- 0
- ''
- “”
- 无效的
- 不明确的
- 钠
TypeScript 是否以不同方式处理非运算符 (!) 还是相同?
以下值在 JavaScript 中被视为“虚假”:
TypeScript 是否以不同方式处理非运算符 (!) 还是相同?
Typescript的设计目标之一是:
保留所有 JavaScript 代码的运行时行为。
这意味着所有 Javascript 代码在 Typescript 代码中的行为都相同。没有例外。您可能会遇到额外的语义错误,但如果您忽略这些错误,行为仍然相同。
因此,如果您想知道诸如 TS 之类的运算符!
在 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
它只被视为 type number
。并且由于 anumber
可以是真值或假值,所以类型!NaN
是 just boolean
。有一个开放的建议,microsoft/TypeScript#28682为NaN
(and for Infinity
and -Infinity
) 引入数字文字,但我不知道这是否会得到解决。
好的,希望有帮助;祝你好运!
TypeScript 是 JavaScript 的超集。
Typescript 仅向 JavaScript 添加了附加功能。它不会否定 JavaScript 的任何特性或功能。
JavaScript 中的错误在 TypeScript 中也是错误的。JavaScript 中正确的内容在 TypeScript 中也是正确的。