LINUX.ORG.RU

Вышел Typescript 2.0

 ,


1

0

Новая версия Typescript включает множество дополнений, направленных на статический анализ программ и выявление ошибок на этапе компиляции в JavaScript. Для этого добавлен параметр --strictNullChecks, при использовании null и undefined с этим параметром необходимо явно указывать, что переменной можно присваивать эти значения. Исключение составляет тип any.

Пример:

let x: number;
let y: number | undefined;
let z: number | null | undefined;

В этом примере переменной x нельзя присваивать значения null и undefined, y может принимать значение null, z можно присваивать и null, и undefined.

Другие изменения:

  • Тип never представляет собой новый примитивный тип, который никогда не создается. Основное использование его — указание в качестве значения, которое возвращает функция, не возвращающая значения.
  • readonly-поля.
  • Возможность указать тип this для функции и соответствующий параметр (--noImplicitThis) для компилятора.
  • Дискриминированные объединения (discriminated unions aka tagged unions)
  • Поддержка Glob в tsconfig.json.
  • Улучшения в описании модулей BaseUrl, Path mapping, rootDirs, tracing.
  • Поддержка UMD-модулей.
  • Необязательные поля классов.
  • Private и Protected конструкторы.
  • Абстрактные поля.

>>> Подробности

Кек, чота мелкососы тормозят. Обещали же компилятор в байт-код и форк Continuum, чтобы этот байт-код исполнять. И где?

TooPar ()

Typescript 2.0

ненужно. ни 1.0, ни 2.0, ни 3.0!

anonymous ()

Скоро (или не очень) из JS получится C# их стараниями. И это больше хорошо, чем плохо.

boo32 ()
Ответ на: комментарий от boo32

Скоро (или не очень) из JS получится C# их стараниями. И это больше хорошо, чем плохо.

Ага, и привязок к винде понаделают

segfault ★★★★★ ()

добавлен параметр --strictNullChecks, при использовании null и undefined с этим параметром необходимо явно указывать, что переменной можно присваивать эти значения. Исключение составляет тип any.

А человеческие Option-ы почему сделать нельзя?

Zenom ★★★ ()
Ответ на: комментарий от dib2

Лол а то что получилась недостатическая недотипизация.
Взяли бы лучше эталонный ES и не позорились.

uin ★★ ()

Вообще я бы его никогда не потрогал бы, если бы не Angular 2. На мой взгляд, после выхода следующий или через одну версии JS, TS отомрет. Не сразу, но отомрет, если конечно его не запихнут в chrome.

deterok ★★★★★ ()
Ответ на: комментарий от uin

Микрософт и являются в том числе создателями этого эталона ES (они входят в W3C), а TS во многом является черновиком и тестовым полигоном новых фишек для него. Типы, async/await и Rx протолкнут в стандарт - превратятся в корпорацию добра и света.

boo32 ()
Последнее исправление: boo32 (всего исправлений: 1)
Ответ на: комментарий от segfault

К винде не получится, всё-таки, а чакру из своего IE они в опенсорс тоже отдают потихоньку, так что вендорлоки от микрософта теперь будут в каком-то смысле «честнее».

boo32 ()
Ответ на: комментарий от Zenom

А человеческие Option-ы почему сделать нельзя?

Потому что выпускники индусских ПТУ о них не слышали.

tailgunner ★★★★★ ()
Ответ на: комментарий от deterok

Это вряд ли т.к он надмножество js, а в сам js никогда не добавят типизацию.

ritsufag ★★★★★ ()
Ответ на: комментарий от boo32

Асинхронность то в самом языке каким образом отражена? Это же особенность работы рантайма насколько я понимаю.
Промисы из тайпскрипта что ли пришли?

uin ★★ ()

«never»? Чем им «void» не угодил? Выпендриться решили?

slonopotamus ()
Ответ на: комментарий от deterok

На мой взгляд, после выхода следующий или через одну версии JS, TS отомрет

Поддерживаю. Но мне кажется TS Будет жить пока живет webpack. С ним без разницы на скольких слоях трансляции ты пишешь. Хоть jsx поверх TS

http2, нативный es6 импорт, и нативные кастомные тэги, возможно (хотя бы для некоторых) вернут старую традицию писать фронтенд напрямую, без компоновщиков, а значит и без трансляторов.

makoven ★★★★★ ()
Последнее исправление: makoven (всего исправлений: 1)
Ответ на: комментарий от boo32

К винде не получится, всё-таки, а чакру из своего IE они в опенсорс тоже отдают потихоньку, так что вендорлоки от

Опенсорсу поделки компании Майкрософт не нужны.

микрософта теперь будут в каком-то смысле «честнее».

Ага, и когда они Поносова «чмырили», они тоже наверное были, в каком-то смысле «честнее».

anonymous ()
Ответ на: комментарий от deterok

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

nikolnik ★★★ ()
Ответ на: комментарий от boo32

Микрософт и являются в том числе создателями этого эталона ES (они входят в W3C)

Тут, почему-то я вспомнил давнее интервью, одного из разработчиков стандарта HTML5. Он прямо сказал, что Майкрософт игнорирует разработку черновика HTML5.

Типы, async/await и Rx протолкнут в стандарт - превратятся в корпорацию добра и света.

😁 😁 😁 😁 а ты смищной мальчик.

anonymous ()
Ответ на: комментарий от ritsufag

Ну не мюнхаузен же.
Хорочан ты админишь или нет?

uin ★★ ()

Чем их ванильный JS не устраивает?

istepan ()
Ответ на: комментарий от ritsufag

Значит народу больше чем полтора человека.
Это хорошо.

uin ★★ ()
Ответ на: комментарий от uin

Асинхронность то в самом языке каким образом отражена?

Сейчас отражена каллбэками, промисами и генераторами.

Это же особенность работы рантайма насколько я понимаю.

В случае промисов - да, достаточно поддержки рантайма.

Промисы из тайпскрипта что ли пришли?

Нет.

boo32 ()
Ответ на: комментарий от anonymous

Ты очень толсто обобщаешь под собой опенсорс, а под делом Поносова - их стратегию взаимодействия с опенсорсом.

boo32 ()
Ответ на: комментарий от anonymous

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

boo32 ()
Ответ на: комментарий от boo32

Ты очень толсто обобщаешь под собой опенсорс,

Запомни мальчик опенсорс это Я!

anonymous ()
Ответ на: комментарий от tailgunner

Потому что выпускники индусских ПТУ о них не слышали.

Это нужно очень сильно постараться, чтобы в 2016 году не услышать о них!

Zenom ★★★ ()
Ответ на: комментарий от slonopotamus

«never»? Чем им «void» не угодил? Выпендриться решили?

Насколько я понял, never — это не Unit, а Nothing из Scala и ! из rust.

Zenom ★★★ ()
Ответ на: комментарий от boo32

async/await

Чет посмотрел в интернеты оказывается это майкрософтовое изобретение и это не то же самое что просто async (асинхронщина).

В чем суть и давно ли это запилили вообще (если вообще запилили)?

uin ★★ ()
Ответ на: комментарий от uin

В v8 весной вроде, с флагами. Суть в замене связки co + yield на нативное. По чесноку, это надо было сразу делать, а не вводить генераторы и yield.

Vit ★★★★★ ()
Ответ на: комментарий от ritsufag

Почему не добавят? В T39 поклялись мамами?

Vit ★★★★★ ()
Ответ на: комментарий от Zenom

А человеческие Option-ы почему сделать нельзя?

Что вы под этим подразумеваете?

Типизация и так опция, по умолчанию тип any.

grim ★★★★ ()
Ответ на: комментарий от grim

Что вы под этим подразумеваете?

Что опции должны быть монадами, иначе приходится писать кучу boilerplate кода в случае с nullable-типами.

Zenom ★★★ ()
Ответ на: комментарий от Zenom

Как мы видим даже в этом топике, есть такие старательные люди :)

tailgunner ★★★★★ ()
Ответ на: комментарий от grim

А тут есть свидетели ие^Wтайпскриптовы? Кому-то помогало?

Vit ★★★★★ ()
Ответ на: комментарий от grim

Typescript создаётся истиным арийцем, Anders Hejlsberg

Ааа... это много объясняет.

«In the design of C#, we looked at a lot of languages. We looked at C++, we looked at Java, at Modula 2, C, and we looked at Smalltalk».

Человек остановился в развитии на уровне Delphi.

tailgunner ★★★★★ ()
Ответ на: комментарий от anonymous

Опенсорсу поделки компании Майкрософт не нужны.

Вы ошибаетесь
Микрософт вышла на первое место по количеству опенсорс комитетов если не ошибаюсь на гитхабе, обогнав Гугл и прочих.

grim ★★★★ ()
Ответ на: комментарий от tailgunner

Как мы видим даже в этом топике, есть такие старательные люди :)

Ну это ещё не беда. Беда, когда люди, занимающиеся дизайном языков о них не слышали :)

Zenom ★★★ ()
Ответ на: комментарий от Vit

По чесноку, это надо было сразу делать, а не вводить генераторы и yield.

Генераторы более гибкие, те же redux-sagas пользуют их и довольно специфичную версию co, которая ещё и оборачивается не сразу. Зачем? Просто так удобнее тестировать: можно проверять каждый шаг через .next().

x3al ★★★★★ ()
Ответ на: комментарий от Vit

Я один проект сделал.

Несколько больше работы чем с ES6, но оно того стоит так как есть intellisence и типизация помогает отловить много ошибок.

Текущий клиент планирует переход на Ангулар 2 и тс в планах, вчера ходили на Ангулар2 митап, слиент проникся :)

grim ★★★★ ()
Ответ на: комментарий от tailgunner

Человек остановился в развитии на уровне Delphi.

А он-то чем вас обидел?

Тем не менее C# на данный момент наиболее адекватный ЯП по моему личному мнению.

grim ★★★★ ()
Последнее исправление: grim (всего исправлений: 1)
Ответ на: комментарий от x3al

Можно конечно искать глубокий смысл, но мне почему-то кажется, что люди просто думали жопой вместо головы, когда втащили yield/* без async/await.

Vit ★★★★★ ()
Ответ на: комментарий от grim

Человек остановился в развитии на уровне Delphi.

А он-то чем вас обидел?

А ты всегда стараешься объяснить недовольство личными обидами?

C# на данный момент наиболее адекватный ЯП по моему личному мнению.

Возможно. Но речь идет о разработке нового языка, а мы получаем клон C# 15-летней давности.

tailgunner ★★★★★ ()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от Zenom

Non-nulabble type как раз и решает эту задачу.

Или я опять чего-то не понял?

grim ★★★★ ()
Ответ на: комментарий от tailgunner

Возможно. Но речь идет о разработке нового языка, а мы получаем клон C# 15-летрней давности.

Я видимо опять что-то не понял но я не вижу похожих черт между этими ЯП.

Может укажете?

А ты всегда стараешься объяснить недовольство личными обидами?

Нет, только когда вижу необьяснимый взрыв метана.

grim ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.