TypeScript 不允许with来自 JavaScript 的语句。
var radius = 12;
with (Math) {
var area = PI * radius * radius;
}
Run Code Online (Sandbox Code Playgroud)
解释是 ECMAscript 5 中的“严格模式”不允许这样做。
这只是with声明 - 还是“严格模式”不允许的任何内容在 TypeScript 中也不允许?
TypeScript 确实允许该with语句,因为不这样做会违反它作为 JavaScript 超集的规定。然而,编译器会发出错误(尽管仍然编译并输出代码),因为除了运行时之外,任何东西都无法知道语句引用的内容with,这完全违背了静态类型的目的,所以你\xe2\x80\x99 不应该在 TypeScript 程序中使用它。TypeScript 论坛上有\xe2\x80\x99s 的附加讨论对此进行了额外讨论。
关于 TypeScript 中不允许的其他严格模式,因为 TypeScript 尝试遵循 ES6 规范来实现其新功能,并且 ES6 规范 (\xc2\xa710.2.1) 表示 \xe2\x80\x9cModule 代码始终是严格代码。\xe2\x80\x9d 和 \xe2\x80\x9cA ClassDeclaration 或 ClassExpression 始终是严格代码。\xe2\x80\x9d,您可能会发现几乎所有 TypeScript 代码都需要符合严格模式即使不是今天,也会在未来的某个时刻。
\n| 归档时间: |
|
| 查看次数: |
5137 次 |
| 最近记录: |