TypeScript: самый строгий режим
- Алик Ким
- 2 апр. 2023 г.
- 1 мин. чтения
Задался вопросом: как включить для TypeScript самый суровый режим контроля и ограничений (люблю, когда мне техника помогает не тупить).
почитал немного на эту тему, выяснилось: основная опция компилятора на эту тему - "strict". она является шорткатом для набора опций. например, в нее входит noImplicitAny.
надо отметить, что еще в "strict" входит "alwaysStrict", который включает strict-режим ("use strict";) для аутпут-JS.
strict-режим для JS - нуу, хоть в какие то чувства приводит Javascript, в этом режиме считаются ошибочными некоторые ситуации, которые в обычном режиме полной свободы JS просто игнорировались.
но есть и нужные опции компилятора TS, не входящие в состав "strict". например, noPropertyAccessFromIndexSignature.
я вот тут нашел перечень таких опций, беру для себя их на вооружение:
https://github.com/cyrilletuzi/typescript-strictly-typed
strict
noFallthroughCasesInSwitch
noImplicitReturns
noPropertyAccessFromIndexSignature
noImplicitOverride
exactOptionalPropertyTypes
noUncheckedIndexedAccess
эта сама библиотечка, я так понимаю, задумывалась как средство для автоматического включения всех вот этих опцицй суровости. но экспериментальным путем установлено, что чето она не все включает. например, noPropertyAccessFromIndexSignature мне не включила для TS 4.3
в общем, думаю, имеет смысл просто эти опции включать вручную для всех новых проектов
хотяяя тут есть еще один нюанс: если мы используем стороннюю библиотеку, которая не поддерживает какую-то суровую опцию - нам и у себя ее тоже придется отключить :(
Comments