“use strict”为 TypeScript 代码添加了什么?

2024-01-10

这个问题是一个副本TypeScript 文件中需要“Use Strict”吗? https://stackoverflow.com/questions/31391760/use-strict-needed-in-a-typescript-file

有一些答案,但不清楚 TypeScript 中的“use strict”语句是什么,当 tsc 在没有此语句的情况下给我带来严格模式错误时。

但决定把问题作为一个单独的问题来问。

我正在使用 TypeScript 1.6,对我来说,不清楚“use strict”语句在 TypeScript 中添加了什么?

使用“严格使用”;声明看起来像是双重检查。 由于 tsc 在没有此语句的情况下显示严格模式错误。

例如:

class Foo {
03;
constructor(public name:string) {
}

move(meters:number) {

    let o = {p: 1, p: 2};

    let a;
    delete a;
    alert(this.name + " moved " + meters + "m.");

}

sum(a:number, a:number, c:number):number { 
    var sum = 015 +
        197 +
        142;


    var x = 17;
    with (obj)
    {
        x;
    }

    [1, 2, 3, 4, 5].map(function (n) {
        return !(n > 1) ? 1 : arguments.callee(n - 1) * n;
    });

    delete sum;

    return a + b + c;
}

tsc 向我展示:

  • 错误:(16, 19) TS2300:重复的标识符“a”。
  • 错误:(24, 9) TS1101:严格模式下不允许使用“with”语句。
  • 错误:(8, 18) TS2300:重复的标识符“p”。
  • 错误:(2, 5) TS1121:严格模式下不允许使用八进制文字。
  • 错误:(11, 16) TS1102:无法在严格模式下对标识符调用“删除”。
  • 错误:(16, 9) TS2300:重复的标识符“a”。
  • 错误:(8, 24) TS1117:在严格模式下,对象文字不能具有多个同名属性。
  • 错误:(8, 24) TS2300:重复的标识符“p”。

我正在使用 TypeScript 1.6,对我来说,不清楚“use strict”语句在 TypeScript 中添加了什么?

对于 TypeScript 编译时,它还添加了变量名称检查。例如。以下是可以的

var implements = 123;

但出现以下错误:

"use strict";
var implements = 123; // Error: implements is a reserved keyword in strict mode 

Note :TypeScript 还可以防止其他错误不顾一切严格模式声明,这就是您的示例中发生的情况。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

“use strict”为 TypeScript 代码添加了什么? 的相关文章

随机推荐