Pull to refresh

Comments 27

UFO just landed and posted this here
По одному проекту потребовалось мне изучить азы Angular, чтобы написать небольшую прослойку между моим TypeScript проектом и Angular, дабы захватить аудиторию последнего. Вот и статья, судя по названию, должна была быть именно про это. Но про Angular ни слова.

Отвратительный стиль подачи и выбор порядка материала.


Необязательные параметры в конструкторе

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


Типов данных в TS не так уж и много, можно было бы и все перечислить. В данном конкретно случае пропущен, как минимум, функциональный тип, который является достаточно важным. Но что еще хуже — ни слова об type SOME_TYPE = 'a' | 'b' и вообще об, вроде это называется "алгербаическая система типов", но это не точно, что позволяет писать number | string или someInterface & anotherInterface.


И что классы с конструкторами и гетерами, что стрелочные функции, есть в js. Пишите про отличия? Пишите про отличия. А так это просто набор каких-то случайных выдержек из документации.


Про модули просто невероятно выразительно расписано. Даже про возможность написать import * as MyPoint from './myPoint';
Ни слова.

Ми качественно подаём только за деньги. Неужели ви думаете, что мы будем для вас стараться? У нас все советы такие.
Модули как в ES6, при чем тут TS?

Я тоже не знаю зачем это есть в этой статье. Но оно есть, только в том виде, в котором все равно пойдешь читать документацию чтобы понять о чем речь.

Было бы интересно почитать про особенности TypeScript по сравнению с современным JavaScript (ES6 etc.), а не со старой версией языка.
UFO just landed and posted this here
Да, не то, чтобы что-то конкретное интересует. Просто рассматривать ts на базе старого js как то нерелевентно (имхо) чтоли. Выбирают то между ts и es (ну, не в случае ангуляра конечно). Для рекламы это хорошо. А практическая пользы намного меньше.
UFO just landed and posted this here
Ну я не думаю, что дело тут только в предпочтениях. У TS есть конкретные фичи, которых в ES6 нет и скорее всего не будет. Интерфейсы прежде всего. Которые делают актуальным TS во вполне конкретных ситуациях (поставка интерфейсов в условиях низкого покрытия кода модульными тестами и т.п.).
А так как в целом синтаксис у них не очень то и отличается, то между ними можно выбирать на базе потребностей проекта.
И, конечно, фичи именно TS горадо важнее, чем описанные, тут, например, стрелочные функции. Которые, вроде, уже во всех языках есть.
Имя метода геттера и сеттера принято/необходимо называть одинаково с именем поля, к которому осуществляется доступ, а у Вас почему-то имя получилось в аппер-кейсе
   get X() { //обратите внимание на пробел перед X
     return this.x;
   }
   set X(value) { //обратите внимание на пробел перед Y
     this.x = value;
   }
> Имя метода геттера и сеттера принято/необходимо называть одинаково с именем поля, к которому осуществляется доступ

Его нельзя называть одинаково.
привет всем, вот интересует вопрос, может не совсем по теме.
Нашей команде заказчик дал задание: написать ОДНО приложение (типа Megogo) для просмотров фильмов и ТВ каналов на платформах Tizen, WebOS, Android, iOS. Мы думаем использовать для этого Cordova + Angular. интересует как это соеденить, стоит ли вообще соединять или лучше писать на нативном ES6, и вообще кто сталкивался с подобными заданиями подскажите направление решения) ответы типа «пишите для каждой платформы свое приложение» не интересуют, заранее спасибо)
За тизен скажу — пишите на ванильном JS или край на AngularJS (который 1). Мы писали на реакте, кордова там вообще лишнее — всё платформо-специфичное API выведено в JS. Задолбаться — движок встроенный глючный, API телика документировано, но реалиям не соответствует. У ТВ разных модельных годов есть мягко говоря «особенности» воспроизведения видеопотоков. Самсунг регулярно выкатывает «новые» версии тизен, но косяки всё те же. Отладчика нормального нет.

По ощущениям чем проще фреймворк, тем легче будет отлаживаться. Смотреть в километровые трейсы (на любом современном фреймворке) то ещё удовольствие — и вы не сможете сказать сразу, то ли вы облажались, то ли платформа глючит.

Очень похожая ситуация, судя по заметкам в инете — и на WebOS (LG).

Про производительность кордовы на мобильных платформах не писал только ленивый — смотрите сами, хватит ли вам её.
Спасибо JSmitty, обсудим командой.
Если у кого еще есть опыт / советы, с радостью выслушаем.
Всем советую, у кого есть готовая библиотека или какие-нибудь компоненты написать файл дефиниции типов(d.ts). Это позволит другим людям использовать вашу библиотеку в тайпскрипте, ну а если вы пользуетесь VisualStudio Code, так вы в придачу получаете intelisense, да же из javascript кода.
А статические анализаторы по типу PVS для js есть? Пора бы уже им появляться, ведь копипаста вредна независимо от языка программирования…
image
ESLint/TSLint + очень неплохой встроенный анализатор в WebStorm
Они помогут найти «ошибку» в приведенном мной фрагменте?
Вы спросили про анализаторы. Я ответил.
WebStorm умеет находить копипасту.
В статье не все примеры рабочие. Думаю, если читателю (под которым подразумевается новичок в Typescript) предлагается запустить какой-либо код, то он должен быть приведен корректно. В файле main.ts внутри функции пропущен метод console.
console(message);
В таком виде код упадет с ошибкой компиляции. Также внутри myPoints.ts в метод getDistanceBtw передается неизвестный тип AnotherPoint.
getDistanceBtw(another: AnotherPoint) {
    //посчитать и вернуть расстояние
}
Это вызовет ошибку при компиляции Typescript. Что-то вроде «Cannot find name 'AnotherPoint'». И зачем вообще приводить код этого метода, если он нигде не вызывается?
В статье не все примеры рабочие.
Хвалить Typescript за то что он позволяет на стадии компиляции отлавливать ошибки и приводить примеры которые падают на стадии компиляции как рабочие примеры? - Это удивляет.
В примерах автора участки кода, отмеченные мной, позиционируются как рабочие. Автор не указывает, что в этих местах программа должна упасть. Напротив, он пишет, что результатом должно стать создание файла и класса соответственно. Если бы автор указал, что в приведенных двух случаях Typesript «подстрахует», я бы не писал свой первый комментарий.
Sign up to leave a comment.