TypeScript Use Cases::Журнал СА 07-08.2016
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6372
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7081
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4357
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3074
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3869
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3886
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6379
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3226
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3518
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7347
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10705
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12432
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14075
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9186
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7135
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5441
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4674
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3484
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3206
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3444
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3080
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 TypeScript Use Cases

Архив номеров / 2016 / Выпуск №07-08 (164-165) / TypeScript Use Cases

Рубрика: Разработка /  How To

Александр Майоров АЛЕКСАНДР МАЙОРОВ, Tutu.ru, руководитель отдела Frontend-разработки, alexander@majorov.su

Статья – сборник различных решений при работе с TypeScript. Скорее даже ответы на задаваемые вопросы, путеводитель по часто встречающимся ситуациям

Конкретно в данной статье мы рассмотрим интересные проблемы, возникающие при работе с типами. Не всегда у разработчиков, особенно начинающих, хватает знаний как разруливать различные спорные ситуации с компилятором, который ругается на несоответствие типа. Давайте по порядку пройдемся по таким случаям.

TS2345: Type is not assignable to type

Бывают случаи, когда вы сталкиваетесь с ошибкой вида:

TS2345: Argument of type 'тип 1' is not assignable to parameter of type 'тип 2'. Type 'тип 2' is not assignable to type 'тип 1'

Такое происходит из-за того, что вы скорее всего используете объединение типов (union type). К примеру, у вас есть код:

let s :string | string[];

В таком случае компилятор объединяет эти типы и работает только с общими свойствами и методами. К примеру, у строки и массива есть свойство .length. Это значит, что вы можете пользоваться этим свойством без проблем, ибо это ненарушает правила работы с данным типом. Но как только вы расширите тип числовым примитивом:

let s :string | string[] | number;

ваш код будет выдавать ошибку:

TS2339: Property 'length' does not exist on type 'string | string[] | number'.

Все потому, что у number нет никакого свойства .length. Как быть? Есть несколько разных способов решить эту задачу. Опишу все по порядку.

Самый простой и дешевый – это использовать технику Typecasting. Вообще в других языках программирования Typecasting – это привидение типа (англ. type conversion), преобразование значения одного типа в значение другого типа. ВJavaScript (ECMAScript) это делается автоматически по необходимости с использованием вспомогательных методов toString() и valueOf().

TypeScript вы скорее всего используете именно из-за его основной фичи: статическая типизация. Так как TypeScript – это все же тот же JavaScript, а вы скорее всего Frontend-разработчик, то вы не можете жить с переменными строго одного типа. И код пестрит различными мультитипами, или периодически вы пытаетесь приводить один тип к другому. Иногда это усложняет работу, так как вы можете наталкиваться на «непонятное» поведение компилятора.

Статью целиком читайте в журнале «Системный администратор», №07-08 за 2016 г. на страницах 89-91.

PDF-версию данного номера можно приобрести в нашем магазине.


  1. Краткий справочник по типам в TypeScript – https://github.com/frontdevops/typescript-cheat-sheet.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru