Стоит ли всегда устанавливать для параметра --alwaysStrict значение true в tsconfig.json?

Просто любопытно, есть ли недостатки в том числе:

"compilerOptions": {
  "alwaysStrict": true,
 ...
 }

Так как по умолчанию это ложь. Мысли?


person Ole    schedule 01.05.2017    source источник
comment
Это будет "Parse in strict mode and emit "use strict" for each source file", поэтому ваш вопрос в основном не отличается от: stackoverflow.com/questions/1335851/   -  person Nitzan Tomer    schedule 02.05.2017


Ответы (2)


строгий против всегдастрогий

Рекомендуется не только включить alwaysStrict, но и включить флаг strict, который включает alwaysStrict и также noImplicitAny, noImplicitThis, strictBindCallApply, strictNullChecks , strictFunctionTypes и strictPropertyInitialization, которые еще важнее.

Сбивающие с толку имена

Здесь есть путаница с именами, потому что «строгий» может означать здесь несколько вещей. Флаг strict TypeScript — это ярлык для включения нескольких других флагов, упомянутых выше. Флаг alwaysStrict TypeScript анализирует файлы в строгом режиме JS (в отличие от небрежного режима JS и выдает 'use strict' в Вместо использования флага alwaysStrict вы можете добавить "use strict"; ко всем своим файлам (модули ES по умолчанию являются строгими).

Другие строгие флаги

Другие строгие флаги TypeScript даже более важны, потому что они помогают устранить следующие ошибки:

strictNullChecks является наиболее важным в этом отношении.

Он не включен по умолчанию для обратной совместимости со старым кодом, который был написан до того, как был добавлен новый способ проверки null и undefined.

Смотрите этот ответ для более подробной информации:

person rsp    schedule 14.11.2019

Просто любопытно, есть ли недостатки у включения

Даже если ваш файл не будет в режиме strict, он будет обработан как есть. например вам не будет разрешено создавать объявление функции внутри тела функции: Почему TS жалуется на объявления функций внутри тела функции

Лично: Это хорошая идея, чтобы иметь его. И еще лучше всегда использовать модули JavaScript/TypeScript (которые по умолчанию находятся в строгом режиме).

person basarat    schedule 02.05.2017