Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   TypeScript. Впечатления от нового языка (https://javascript.ru/forum/library-toolkit-framework/32271-typescript-vpechatleniya-ot-novogo-yazyka.html)

F_Z_14 09.10.2012 21:20

TypeScript. Впечатления от нового языка
 
Кто уже пользовался?)
Расскажите, какие впечатления от нового языка Хейлсберга?

Nekromancer 10.10.2012 00:46

Это JavaScript.

F_Z_14 10.10.2012 06:04

Цитата:

Сообщение от Nekromancer (Сообщение 209130)
Это JavaScript.

Это не только тот Javascript, который есть сейчас) еще реализация фишек Ecmascript 6 (классы, модули, лямбды и т.д. ) + опциональная статическая типизация.
В релиз еще должны обобщения включить.

Gvozd 10.10.2012 07:43

Открыл их демку.
Передал в конструктор заместо строки массив.
Редактор подчеркнул мне это дело, но успешно сгенерировал JS-код а котором не было ни слова о "типизации", и который спокойно съел массив заместо строки.
Спасибо, но моя IDE так уже умеет.
Закрыл демку

F_Z_14 10.10.2012 07:49

Они вроде информацию о типе намеренно не включают в скомпилированный js, чтобы не загрязнять код. Сейчас на эту тему дискуссия ведется.
Компилятор TypeScript просто не скомпилирует этот код и сругается, укажет где ошибка. Да и в машинных кодах тоже информации о типе нет)
И ваша IDE так не может уметь) Она может подсветить ошибку, но у вас поддержки со стороны компилятора не будет.

Gvozd 10.10.2012 08:36

Цитата:

Сообщение от F_Z_14
Компилятор TypeScript просто не скомпилирует этот код и сругается, укажет где ошибка.

Вы читали что я писал выше?
Их он-лайн редактор подсветил мне ошибку, но все равно выдал рабочий JS-код с этой ошибкой
Цитата:

Сообщение от F_Z_14
И ваша IDE так не может уметь) Она может подсветить ошибку, но у вас поддержки со стороны компилятора не будет.

Да, именно так. У них все ровно то же самое - компилятор успешно скомпилировал код с ошибкой.
Цитата:

Сообщение от F_Z_14
Да и в машинных кодах тоже информации о типе нет)

Правда что ли?
Давно писали хотя бы на ассемблере?
Неужели ADD и FADD компилируются в одинаковый машинный код?

F_Z_14 10.10.2012 08:45

Откройте Visual Studio, установите плагин под ts.
Компилятор не скомпилирует код с ошибками.

Gvozd 10.10.2012 09:04

Без понятия как это выглядит в студии, так как их плагин криво встроился в студию, и никаких новых проектов не появилось.
Зато в курсе как это выглядит в ихнем компиляторе на Node.js
Цитата:

c:\Projects\ts>tsc helloworld.ts
c:/Projects/ts/helloworld.ts(12,18): Supplied parameters do not match any signature of call target:
Could not apply type 'string' to argument 1, which is of type 'number[]'
И в результате успешно скомпилированная программа

Nekromancer 10.10.2012 09:47

Цитата:

Сообщение от F_Z_14 (Сообщение 209161)
Это не только тот Javascript, который есть сейчас) еще реализация фишек Ecmascript 6 (классы, модули, лямбды и т.д. ) + опциональная статическая типизация.
В релиз еще должны обобщения включить.

CoffeeScript это тоже JS, и этот. Никаких фишек он не добавляет, а просто предоставляет сахар для синтаксила и то, что уже давно умеет JSDoc и Google Closure Compiler.

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

F_Z_14 11.10.2012 03:22

Цитата:

Сообщение от Nekromancer (Сообщение 209177)
CoffeeScript это тоже JS, и этот. Никаких фишек он не добавляет, а просто предоставляет сахар для синтаксила и то, что уже давно умеет JSDoc и Google Closure Compiler.

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

Все верно. А может быть как-то иначе?) Язык новый, предлагает новые возможности, компилируется в Ecmascript 3 или 5, в зависимости от настроек компилятора. Появится в браузерах поддержка Ecmascript 6, будет компилиться в 6 с классами и модулями. Суть в том, что можно использовать его уже сейчас, в то время как Ecmascript 6 еще будет везде нескоро. Пишите на чистом js, никто же не заставляет писать на ts.
http://social.mirgames.ru/blog/html5/41.html - вот статья интересная по теме


Часовой пояс GMT +3, время: 05:22.