Новая версия Typescript включает множество дополнений, направленных на статический анализ программ и выявление ошибок на этапе компиляции в JavaScript.
Для этого добавлен параметр --strictNullChecks
, при использовании null
и undefined
с этим параметром необходимо явно указывать, что переменной можно присваивать эти значения. Исключение составляет тип any
.
Пример:
let x: number;
let y: number | undefined;
let z: number | null | undefined;
В этом примере переменной x
нельзя присваивать значения null
и undefined
, y
может принимать значение null
, z
можно присваивать и null
, и undefined
.
Другие изменения:
- Тип
never
представляет собой новый примитивный тип, который никогда не создается. Основное использование его — указание в качестве значения, которое возвращает функция, не возвращающая значения. -
readonly
-поля. - Возможность указать тип
this
для функции и соответствующий параметр (--noImplicitThis
) для компилятора. - Дискриминированные объединения (discriminated unions aka tagged unions)
- Поддержка
Glob
вtsconfig.json
. - Улучшения в описании модулей
BaseUrl
,Path mapping
,rootDirs
,tracing
. - Поддержка UMD-модулей.
- Необязательные поля классов.
-
Private
иProtected
конструкторы. - Абстрактные поля.
>>> Подробности