Новая версия 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конструкторы. - Абстрактные поля.
>>> Подробности


