Рубрика:
Разработка /
Особенности языка
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
АЛЕКСАНДР МАЙОРОВ, Tutu.ru, руководитель отдела Frontend-разработки, alexander@majorov.su
Что нового в TypeScript 2
22 сентября вышел новый релиз TypeScript 2, получивший множество новых фич и обновление существующих возможностей
Чтобы сразу опробовать прочитанное, устанавливайте новую версию. Чтобы получить актуальную версию языка 2.0.3, выполняем:
npm i -g typescript
Теперь давайте пройдемся по новым изменениям, которые могут качественно повлиять на разработку и ваш код. И начнем мы с типов null и undefined. Дело в том, что давно идут споры о том, что плохая практика пользоваться null-типами. В новой версии добавили жесткий контроль за такими типами, и теперь вы можете даже четко разделять null от undefined.
В TypeScript есть два специальных типа, null и undefined, чьими значения являются null и undefined соответственно. Раньше отсутствовала возможность явно дать имена этим типам, но теперь null и undefined могут использоваться как типы независимо от режима работы компилятора.
Ранее компилятор считал, что null и undefined могут быть присвоены любому типу. Фактически null и undefined были допустимыми значениями для любого типа, и было невозможно намеренно исключить их (и, как следствие, невозможно обнаружить ошибочное их использование).
Флаг -strictNullChecks позволяет переключить компилятор в новый режим строгой проверки null-типа.
В режиме strictNullChecks значения null и undefined уже не являются подтипами составных типов и могут быть значениями только самих себя и any.
Поэтому, несмотря на то что T и T | undefined считаются синонимами в обычном режиме (т.к. undefined является подтипом для любого T), они становятся разными типами в строгом режиме, и только T | undefined разрешает undefined-значения. Эти же правила истины для пары T и T | null.
Статью целиком читайте в журнале «Системный администратор», №11 за 2016 г. на страницах 60-63.
PDF-версию данного номера можно приобрести в нашем магазине.
- Microsoft/TypeScript.
- TypeScript is a superset of JavaScript that compiles to clean JavaScript output – https://github.com/Microsoft/TypeScript/wiki/What%27s-new-in-TypeScript.
- Announcing TypeScript 2.0 Beta – https://blogs.msdn.microsoft.com/typescript/2016/07/11/announcing-typescript-2-0-beta.
- TypeScript is a superset of JavaScript that compiles to clean JavaScript output – https://github.com/Microsoft/TypeScript/wiki/Roadmap.
- Announcing TypeScript 2.0 – https://blogs.msdn.microsoft.com/typescript/2016/09/22/announcing-typescript-2-0.
- The Future of Declaration Files – https://blogs.msdn.microsoft.com/typescript/2016/06/15/the-future-of-declaration-files.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|