1. ホーム
  2. javascript

[解決済み] TypeScriptファイルで "Use Strict "が必要?

2022-04-29 02:17:08

質問

TypeScriptのコードファイルのどこに"use strict"の行を入れるかという投稿を見たことがあるのですが、どうすればいいのでしょうか?私の疑問は、なぜこの行が必要なのか、ということです。

TypeScriptはすでに強く型付けされた言語なので、"use strict"は何を追加するのでしょうか?

どのように解決するのですか?

更新情報

  • TypeScript 1.8+ に対応しました。 "use strict"; は、モジュール ( 続きを読む ).
  • TypeScript 2.1以上。 --alwaysStrict コンパイラオプションはすべてのファイルをストリクトモードで解析し "use strict" を出力されるすべてのファイルの先頭に追加します ( 続きを読む ).

TypeScript's tests for "in strict mode"で検索すると、いくつかの例のリストが見つかります。

以下は、次のような場合にのみコンパイル時エラーを投げるコードの例です。 "use strict"; :

// future reserved keyword not allowed as variable name
var let,
    yield,
    public,
    private,
    protected,
    static,
    implements;

// "delete" cannot be called on an identifier
var a;
delete a;

// octal literals not allowed
03;

他にもいくつかの例で "use strict"; は、実行時にのみエラーを投げます。例えば

"use strict";
delete Object.prototype;

個人的には、TypeScriptでミスを防ぐのにそれほど役に立つとは思えないし、ファイルにノイズが増えるので、わざわざ書く気にもならない。とはいえ、TS 2.1からは --alwaysStrict コンパイルオプションは、コードメンテナンスのオーバーヘッドなしに、わずかな厳密性を追加してくれるからです。