"Использовать строгий", необходимый в файле TypeScript?


Я видел сообщения о том, где поместить строку "use strict" в файл кода TypeScript. Мой вопрос в том, почему он вообще есть?

поскольку TypeScript уже является строго типизированным языком, что добавляет "use strict"?

2 89

2 ответа:

обновления

  • TypeScript 1.8+:"use strict"; излучается в модулях (подробнее).
  • TypeScript 2.1+:--alwaysStrict опции компилятора обрабатывает все файлы в строгом режиме и выдает "use strict" в верхней части всех выводимых файлов (подробнее).

вы можете найти список некоторых примеров, выполнив поиск тестов TypeScript для "в строгом режиме".

вот несколько примеров кода, который будет только бросить ошибку времени компиляции, когда вы "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;

лично я не считаю, что все это полезно для предотвращения ошибок в машинописном тексте, и дополнительный шум, который он добавляет к файлу, заставляет меня не беспокоиться о его написании. Тем не менее, начиная с TS 2.1 я включу --alwaysStrict опции компилятора, потому что он добавляет небольшую дополнительную строгость без каких-либо накладных расходов на обслуживание кода.

за мои деньги, да,"use strict"; должны быть включены в TypeScript файлы.

игнорировать время компиляции эффекты "use strict"; на Typescript, скорее всего, есть runtime влияние при выполнении сгенерированного javascript: