Ответы пользователя по тегу TypeScript
  • Как разобраться со всеми этими типами?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    1) Разберитесь сначала с самим TS.
    2) Посмотрите курсы. Минин, например, норм делает.
    3) Книжку можно почитать. И статейки в блоге автора.
    4) create-react-app + ts поможет стартовать
    5) Доку всегда полезно почитать
    6) Ну и гугл, как всегда, в помощь
    Ответ написан
    Комментировать
  • Как типизировать такой объект данных?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    Нет, обобщенные типы можно использовать не только в функциях
    type SomeData<Data = any> = {
        data: Data[];
    }
    const a: SomeData<number> = {data: [1,2,3]};
    Ответ написан
    Комментировать
  • Как typescript сравнивает объявленные типы?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    В рантайме тайпскрипта не существует, остается голый js, т.е. такая проверка работать не будет
    Или делать проверку по косвенный признакам, типа
    function isSStitle(arg: any): arg is SStitle {
        return arg && typeof arg.title === 'string';
    }

    Здесь использован type guard https://basarat.gitbooks.io/typescript/docs/types/...

    Или делать как класс и через instanceof:
    class SStitle {
      title: string;
      constructor(title: string) {
        this.title = title;
      }
    }
      const x:SStitle = new SStitle("AZ5");
    
      if(x instanceof SStitle){...}
    Ответ написан
    Комментировать
  • Каковы перспективы TypeScript?

    Zraza
    @Zraza
    Помог ответ? Отметь решением!
    С моей точки зрения, typescript имеет определенные плюсы по сравнению с чистым js:
    1) Декларации типов играют роль документации. Про JS Doc можно забыть. И, в отличии от документации, сложнее получить расхождение.
    2) Следствие из первого - тайпхинтинг в IDE, автоимпорты, лучше навигация по коду, проще рефакторинг.
    3) Дополнительная защита от ошибок в рантайме

    Но есть и минусы:
    1) Больше временные затраты на написание кода (если мы хотим, чтобы все было нормально описано)
    2) Больше порог входа
    3) Периодически сталкиваешься с тем, что во внешних библиотеках декларации типов расходятся с реальностью
    4) Функциональные библиотеки (lodash, ramda) сложно поддаются типизации с текущими возможностями TS. Хотя, вроде, есть улучшения на этой ниве - надо глянуть changelog.

    Последние тенденции складываются так, что много проектов переписывают на TS или сразу на нем пишут: ant-design, mobx, appolo, loopback, vuejs 3 обещают на TS
    Для бэка есть вполне адекватная TypeORM для работы с БД.
    Можно генерировать типы TS из схемы GraphQL
    Про NestJS тут уже писали.

    Шанс, что он заменит JS, на мой взгляд, невелики. Вряд ли в движок JS в ближайшие годы перепилят настолько, чтобы в нем нативно уживались типы.

    Судя по статистике The State Of JavaScript - рост стабильный и бросать этот язык никто не собирается https://2018.stateofjs.com/javascript-flavors/type...
    Ответ написан
    Комментировать