Машинопись
![]() | |
Парадигма | Мультипарадигмальность : функциональная , универсальная , императивная , объектно-ориентированная. |
---|---|
Разработано | Майкрософт |
Разработчик | Майкрософт |
Впервые появился | 1 октября 2012 г [1] |
Стабильная версия | 5.4.2 [2] ![]() |
Дисциплина набора текста | Утка , постепенный , структурный [3] |
Лицензия | Лицензия Апач 2.0 |
Расширения имен файлов | .ts, .tsx, .mts, .cts |
Веб-сайт | www |
Под влиянием | |
С# , Ф# , [4] Java , JavaScript , ActionScript [5] | |
Под влиянием | |
AtScript , Ассемблер , АркТС |
TypeScript — это с открытым исходным кодом, высокого уровня бесплатный язык программирования разработанный Microsoft , который добавляет статическую типизацию с необязательными аннотациями в JavaScript типов . Он предназначен для разработки больших приложений и транслируется в JavaScript. [6] Поскольку TypeScript является надмножеством JavaScript, все программы JavaScript являются синтаксически допустимыми TypeScript, но в них может не выполняться проверка типов по соображениям безопасности .
TypeScript можно использовать для разработки приложений JavaScript для выполнения как на стороне клиента , так и на стороне сервера (как в случае с Node.js , Deno или Bun ). Для транспиляции доступно несколько вариантов. Можно использовать компилятор TypeScript по умолчанию, [7] или Babel можно вызвать компилятор для преобразования TypeScript в JavaScript.
TypeScript поддерживает файлы определений, которые могут содержать информацию о типах существующих библиотек JavaScript , подобно тому, как C++ файлы заголовков могут описывать структуру существующих объектных файлов . Это позволяет другим программам использовать значения, определенные в файлах, как если бы они были статически типизированными объектами TypeScript. Существуют сторонние заголовочные файлы для популярных библиотек, таких jQuery , MongoDB и D3.js. как заголовки TypeScript для модулей библиотеки Node.js , что позволяет разрабатывать программы Node.js внутри TypeScript. Также доступны [8]
Компилятор TypeScript сам написан на TypeScript и скомпилирован в JavaScript. Он распространяется по лицензии Apache License 2.0 . Андерс Хейлсберг , ведущий архитектор C# и создатель Delphi и Turbo Pascal , работал над разработкой TypeScript. [9] [10] [11] [12]
История [ править ]
TypeScript был выпущен для широкой публики в октябре 2012 года в версии 0.8 после двух лет внутренней разработки в Microsoft. [13] [14] Вскоре после первого публичного выпуска Мигель де Икаса похвалил сам язык, но раскритиковал отсутствие зрелой поддержки IDE, за исключением Microsoft Visual Studio не была доступна в Linux и OS X. , которая в то время [15] [16] По состоянию на апрель 2021 года имеется поддержка в других IDE и текстовых редакторах, включая Emacs , Vim , WebStorm , Atom. [17] от Microsoft и собственный код Visual Studio . [18] В TypeScript 0.9, выпущенном в 2013 году, добавлена поддержка дженериков . [19]
TypeScript 1.0 был представлен на конференции разработчиков Microsoft Build в 2014 году. [20] Обновление 2 для Visual Studio 2013 обеспечивает встроенную поддержку TypeScript. [21] Дальнейшие улучшения были внесены в июле 2014 года, когда команда разработчиков анонсировала новый компилятор TypeScript, производительность которого, как утверждается, увеличилась в пять раз. Одновременно с этим исходный код, который изначально размещался на CodePlex , был перенесен на GitHub . [22]
22 сентября 2016 года был выпущен TypeScript 2.0, в котором было представлено несколько функций, в том числе возможность для программистов опционально обеспечивать нулевую безопасность . [23] чтобы смягчить то, что иногда называют ошибкой на миллиард долларов .
TypeScript 3.0 был выпущен 30 июля 2018 г. [24] добавление множества языковых дополнений, таких как кортежи в остальных параметрах и выражениях распространения, остальные параметры с типами кортежей, общие параметры отдыха и т. д. [25]
TypeScript 4.0 был выпущен 20 августа 2020 года. [26] Хотя версия 4.0 не внесла каких-либо критических изменений, в нее были добавлены такие языковые функции, как пользовательские фабрики JSX и типы Variadic Tuple. [26]
TypeScript 5.0 был выпущен 16 марта 2023 года и включал поддержку декораторов. [27]
Дизайн [ править ]
TypeScript возник из-за недостатков JavaScript для разработки крупномасштабных приложений как в Microsoft, так и среди их внешних клиентов. [28] Проблемы, связанные с работой со сложным кодом JavaScript, привели к появлению спроса на специальные инструменты, упрощающие разработку компонентов на языке. [29]
Разработчики TypeScript искали решение, которое не нарушило бы совместимость со стандартом и его кроссплатформенную поддержку. Зная, что текущее предложение стандарта ECMAScript обещает будущую поддержку программирования на основе классов , TypeScript был основан на этом предложении. Это привело к созданию компилятора JavaScript с набором синтаксических расширений языка, расширенного набора, основанного на предложении, который преобразует расширения в обычный JavaScript. В этом смысле функция класса TypeScript была предварительным просмотром того, чего ожидать от ECMAScript 2015. Уникальным аспектом, которого нет в предложении, но добавлен в TypeScript, является необязательная статическая типизация (также известная как постепенная типизация ), которая позволяет статическому анализу языка облегчить инструментарий и поддержку IDE.
Поддержка ECMAScript 2015 [ править ]
TypeScript добавляет поддержку таких функций, как классы, модули и синтаксис стрелочных функций, как определено в стандарте ECMAScript 2015.
Особенности [ править ]
TypeScript — это расширение языка, которое добавляет функции в ECMAScript 6. Дополнительные функции включают в себя:
- Аннотации типов и во время компиляции проверка типов
- Вывод типа
- Тип стирания
- Интерфейсы
- Перечислимые типы
- Дженерики
- Пространства имен
- Кортежи
- Асинхронный/ожидание
- Явное управление ресурсами [30]
Следующие функции перенесены из ECMAScript 2015:
- Классы
- Модули [31]
- Сокращенный синтаксис «стрелки» для анонимных функций.
- Необязательные параметры и параметры по умолчанию
Синтаксически TypeScript очень похож на JScript .NET , еще одну реализацию Microsoft языкового стандарта ECMA-262, в которой добавлена поддержка статической типизации и классических функций объектно-ориентированного языка, таких как классы, наследование, интерфейсы и пространства имен.
Совместимость с JavaScript [ править ]
TypeScript — это строгий расширенный набор ECMAScript 2015, который сам по себе является расширенным набором ECMAScript 5, обычно называемого JavaScript. [32] Таким образом, программа JavaScript также является допустимой программой TypeScript, и программа TypeScript может беспрепятственно использовать JavaScript. По умолчанию компилятор ориентирован на ECMAScript 5, текущий преобладающий стандарт, но также может генерировать конструкции, используемые в ECMAScript 3 или 2015.
С помощью TypeScript можно использовать существующий код JavaScript, включать популярные библиотеки JavaScript и вызывать код, сгенерированный TypeScript, из другого JavaScript. [33] Объявления типов для этих библиотек предоставляются вместе с исходным кодом.
Введите аннотации [ править ]
TypeScript обеспечивает статическую типизацию посредством аннотаций типов, что позволяет осуществлять проверку типов во время компиляции . Это необязательно, и его можно игнорировать, чтобы использовать обычную динамическую типизацию JavaScript.
функция add ( слева : число , справа : число ) : число {
возврат влево + вправо ;
}
Примитивные типы аннотируются с использованием типов number
, boolean
, и string
. Эти типы отличаются от своих аналогов класса ( Number
, Boolean
и т. д.), которые не могут выполнять операции непосредственно со значениями. Например, Number
и number
добавить нельзя. Дополнительно есть undefined
и null
типы для соответствующих значений.
Все остальные типы аннотируются с использованием имени класса, а не примитивов, например Error
. Массивы можно записать двумя разными способами, которые синтаксически одинаковы: синтаксис на основе обобщения. Array<T>
и сокращение с T[]
.
Дополнительные встроенные типы данных — это кортежи, объединения, never
и any
:
- Массив с предопределенными типами данных по каждому индексу представляет собой кортеж, представленный как
[type1, type2, ..., typeN]
. - Переменная, которая может содержать более одного типа данных, представляет собой объединение, представленное с помощью логического ИЛИ.
|
символ (string | number
). - The
never
type используется, когда создание данного типа невозможно, что полезно для фильтрации отображаемых типов. - Значение типа
any
поддерживает те же операции, что и значение в JavaScript, и выполняется минимальная проверка статического типа, [34] что делает его подходящим для слабо или динамически типизированных структур, хотя обычно это не рекомендуется. [35]
Аннотации типов можно экспортировать в отдельный файл объявлений, чтобы сделать информацию о типе доступной для сценариев TypeScript, использующих типы, уже скомпилированные в JavaScript. Аннотации можно объявить для существующей библиотеки JavaScript, как это было сделано для Node.js и jQuery .
Компилятор TypeScript использует вывод типа для вывода типов, когда типы не заданы. Например, add
метод в приведенном выше коде будет считаться возвращающим number
даже если аннотация типа возвращаемого значения не была предоставлена. Это основано на статических типах left
и right
существование numbers
, и знание компилятором, что результат сложения двух number
s всегда number
. Однако явное объявление возвращаемого типа позволяет компилятору проверить правильность.
Если ни один тип не может быть выведен из-за отсутствия объявлений (например, в модуле JavaScript без типов), то по умолчанию используется динамический тип. any
тип. Дополнительные типы модулей могут быть предоставлены с помощью файла объявления .d.ts с помощью declare module "moduleName"
синтаксис.
Файлы деклараций [ править ]
Когда скрипт TypeScript компилируется, появляется возможность сгенерировать файл объявления (с расширением .d.ts
), который функционирует как интерфейс для компонентов скомпилированного JavaScript. При этом компилятор удаляет все тела функций и методов и сохраняет только сигнатуры экспортируемых типов. Полученный файл объявления затем можно использовать для описания экспортированных виртуальных типов TypeScript библиотеки или модуля JavaScript, когда сторонний разработчик использует его из TypeScript.
Концепция файлов объявлений аналогична концепции файлов заголовков в C/C++ .
объявить пространство имен Арифметика {
add ( слева : число , справа : число ) : число ;
вычесть ( слева : число , справа : число ) : число ;
умножить ( слева : число , справа : число ) : число ;
разделить ( слева : число , справа : число ) : число ;
}
Файлы объявлений типов можно написать вручную для существующих библиотек JavaScript, как это было сделано для jQuery и Node.js.
Большие коллекции файлов объявлений для популярных библиотек JavaScript размещены на GitHub в DefinitelyTyped .
Дженерики [ править ]
TypeScript поддерживает универсальное программирование с использованием синтаксиса, аналогичного Java . [36] Ниже приведен пример функции идентичности . [37]
функции идентификатор < Т > ( Икс : Т ) : Т {
возврат х ;
}
Классы [ править ]
TypeScript использует тот же стиль аннотаций для методов и полей класса, что и для функций и переменных соответственно. По сравнению с обычными классами JavaScript, класс TypeScript также может реализовывать интерфейс через implements
ключевое слово, используйте общие параметры аналогично Java и укажите общедоступные и частные поля.
класс Person {
частное имя : строка ;
личный возраст : номер ;
частная зарплата : число ;
конструктор ( имя : строка , возраст : число , зарплата : число ) {
this . имя = имя ;
этот . возраст = возраст ;
этот . зарплата = зарплата ;
}
toString () : строка {
return ` $ { this . имя } ( ${ this . age } ) ( ${ this . зарплата } )` ;
}
}
Типы союзов [ править ]
Типы объединения поддерживаются в TypeScript. [38] Значения неявно «помечены» типом языка и могут быть получены с помощью typeof
призывать к примитивным ценностям и instanceof
сравнение сложных типов данных. Типы с перекрывающимся использованием (например, метод среза существует как для строк, так и для массивов, оператор плюс работает как со строками, так и с числами) не требуют дополнительного сужения для использования этих функций.
функции преемник ( n : число | bigint ) : число | bigint {
// типы, поддерживающие одни и те же операции, не нуждаются в сужении
return ++ n ;
}
function dependOnParameter ( v : string | Array < string > | Number ) {
// отдельные типы необходимо сузить
if ( v instanceof Array ) {
// сделать что-нибудь
} else if ( typeof ( v ) === "string" ) {
/ / сделать что-нибудь еще
} else {
// должно быть числом
}
}
Перечислимые типы [ править ]
TypeScript добавляет в JavaScript тип данных enum.
enum Cardsuit { Трефы , Бубны , Червы , Пики };
var c : Cardsuit = Cardsuit . Бриллианты ;
По умолчанию члены перечисления нумеруются, начиная с 0; это можно переопределить, установив значение первого:
enum Cardsuit { Трефы = 1 , Бубны , Червы , Пики };
var c : Cardsuit = Cardsuit . Бриллианты ;
Все значения могут быть установлены:
enum Cardsuit { Трефы = 1 , Бубны = 2 , Червы = 4 , Пики = 8 };
var c : Cardsuit = Cardsuit . Бриллианты ;
TypeScript поддерживает сопоставление числового значения с его именем. Например, это находит имя значения 2:
enum Cardsuit { Трефы = 1 , Бубны , Червы , Пики };
varsuitName : = string Cardsuit [ ] 2 ;
оповещение ( имя костюма );
Модули и пространства имен [ править ]
TypeScript различает модули и пространства имен. Обе функции TypeScript поддерживают инкапсуляцию классов, интерфейсов, функций и переменных в контейнеры. Пространства имен (ранее внутренние модули) используют выражения функций, вызываемые немедленно в JavaScript , для инкапсуляции кода, тогда как модули (ранее внешние модули) используют для этого шаблоны библиотеки JavaScript ( AMD или CommonJS ). [39]
Инструменты разработки [ править ]
Компилятор [ править ]
Компилятор TypeScript под названием tsc
, написан на TypeScript . В результате его можно скомпилировать в обычный JavaScript и затем выполнить в любом движке JavaScript (например, в браузере). Пакет компилятора поставляется в комплекте с хостом сценариев, который может выполнять компилятор. Он также доступен в виде пакета Node.js , который использует Node.js в качестве хоста.
Компилятор может «нацеливать» конкретную версию ECMAScript (например, ES5 для совместимости с устаревшими браузерами), но по умолчанию компилируется до последней версии.
Поддержка IDE и редактора [ править ]
- Microsoft предоставляет плагин для Visual Studio 2012 и WebMatrix , полную интегрированную поддержку в Visual Studio 2013 , Visual Studio 2015 , а также базовую поддержку текстовых редакторов для Emacs и Vim . [40]
- Visual Studio Code поддерживает TypeScript в дополнение к нескольким другим языкам и предлагает такие функции, как отладка и интеллектуальное завершение кода .
- alm.tools — это облачная IDE с открытым исходным кодом для TypeScript, созданная с использованием TypeScript, ReactJS и TypeStyle.
- JetBrains поддерживает TypeScript с завершением кода, рефакторингом и отладкой в своих IDE, построенных на платформе IntelliJ, таких как PhpStorm 6, WebStorm 6 и IntelliJ IDEA . [41] а также надстройка и расширение Visual Studio ReSharper 8.1. [42] [43]
- У Atom есть плагин TypeScript с поддержкой автодополнения кода, навигации, форматирования и быстрой компиляции. [44]
- Онлайн-среда Cloud9 IDE и Codenvy поддерживают TypeScript.
- доступен плагин Для среды IDE NetBeans .
- Доступен плагин для Eclipse IDE (версия Kepler).
- TypeEcs доступен для Eclipse IDE .
- Кроссплатформенная облачная IDE Codeanywhere поддерживает TypeScript.
- Webclipse Плагин Eclipse, предназначенный для разработки TypeScript и Angular 2 .
- Angular IDE Автономная IDE, доступная через npm для разработки приложений TypeScript и Angular 2, со встроенной поддержкой терминала.
- Tide — интерактивная среда разработки TypeScript для Emacs .
Интеграция с инструментами автоматизации сборки [ править ]
С помощью плагинов TypeScript можно интегрировать со средствами автоматизации сборки , включая Grunt (grunt-ts [45] ), Apache Maven (плагин TypeScript Maven [46] ), Gulp (gulp-typescript [47] ) и Gradle (плагин TypeScript Gradle [48] ).
Инструменты для линтинга [ править ]
ТСЛинт [49] сканирует код TypeScript на соответствие набору стандартов и рекомендаций. ESLint , стандартный линтер JavaScript, также обеспечивает некоторую поддержку TypeScript через плагины сообщества. Однако неспособность ESLint использовать языковые службы TypeScript препятствовала определенным формам семантического анализа и общепрограммного анализа. [50] В начале 2019 года команда TSLint объявила об отказе от поддержки линтера в пользу typescript-eslint
, совместная работа команд TSLint, ESLint и TypeScript по консолидации линтинга под эгидой ESLint для повышения производительности, единства сообщества и доступности для разработчиков. [51]
Поставщик CodeDOM [ править ]
КодDOM [52] предоставляет типы, которые представляют общие типы элементов исходного кода, которые будут преобразованы в типы данных, классы, операторы и т. д. языка программирования через CodeDOMProvider. [53] Программисты используют CodeDOM и поставщик CodeDOM для создания генератора кода, который генерирует коды для домена приложения. Поставщик CodeDOM TypeScript [54] генерирует коды TypeScript в соответствии с CodeDOM.
История выпусков [ править ]
Номер версии | Дата выпуска | Значительные изменения |
---|---|---|
0.8 | 1 октября 2012 г. | |
0.9 | 18 июня 2013 г. | |
1.0 | 12 апреля 2014 г. | |
1.1 | 6 октября 2014 г. | улучшения производительности |
1.3 | 12 ноября 2014 г. | protected модификатор, типы кортежей
|
1.4 | 20 января 2015 г. | типы объединений , let и const объявления, строки шаблонов, защита типов, псевдонимы типов
|
1.5 | 20 июля 2015 г. | модули ES6, namespace ключевое слово, for..of поддержка, декораторы
|
1.6 | 16 сентября 2015 г. | Поддержка JSX, типы пересечений , объявления локальных типов, абстрактные классы и методы, определяемые пользователем функции защиты типов. |
1.7 | 30 ноября 2015 г. | async и await поддерживать,
|
1.8 | 22 февраля 2016 г. | дженерики ограничений, ошибки анализа потока управления, типы строковых литералов, allowJs
|
2.0 | 22 сентября 2016 г. | типы, поддерживающие нулевые и неопределенные значения, анализ типов на основе потока управления, типы распознаваемых объединений, never тип, readonly ключевое слово, тип this для функций
|
2.1 | 8 ноября 2016 г. | keyof и типы поиска, сопоставленные типы, распространение и отдых объектов,
|
2.2 | 22 февраля 2017 г. | смешанные классы, object тип,
|
2.3 | 27 апреля 2017 г. | async итерация, общие параметры по умолчанию, строгая опция
|
2.4 | 27 июня 2017 г. | выражения динамического импорта, перечисления строк, улучшенный вывод для дженериков, строгая контравариантность для параметров обратного вызова |
2.5 | 31 августа 2017 г. | необязательные переменные предложения catch |
2.6 | 31 октября 2017 г. | строгие типы функций |
2.7 | 31 января 2018 г. | свойства с постоянными именами, кортежи фиксированной длины |
2.8 | 27 марта 2018 г. | условные типы, улучшенные keyof с типами пересечений
|
2.9 | 14 мая 2018 г. | поддержка символов и числовых литералов в keyof и типы сопоставленных объектов
|
3.0 | 30 июля 2018 г. | ссылки на проекты, извлечение и распространение списков параметров с помощью кортежей |
3.1 | 27 сентября 2018 г. | отображаемые типы кортежей и массивов |
3.2 | 30 ноября 2018 г. | более строгая проверка на bind , call , и apply
|
3.3 | 31 января 2019 г. | смягченные правила для методов типов объединения, инкрементные сборки для составных проектов |
3.4 | 29 марта 2019 г. | более быстрые инкрементные сборки, вывод типов из общих функций, readonly модификатор для массивов, const утверждения, глобальная проверка типов this
|
3.5 | 29 мая 2019 г. | более быстрые инкрементные сборки, отсутствие вспомогательного типа, улучшенная проверка избыточных свойств в типах объединения, более умная проверка типов объединения |
3.6 | 28 августа 2019 г. | Более строгие генераторы, более точное распространение массива, лучшая поддержка Unicode для идентификаторов. |
3.7 | 5 ноября 2019 г. | Необязательное сцепление, нулевое объединение |
3.8 | 20 февраля 2020 г. | Импорт и экспорт только по типу, частные поля ECMAScript, верхний уровень await
|
3.9 | 12 мая 2020 г. | Улучшения в выводе, улучшение скорости |
4.0 | 20 августа 2020 г. | Вариадические типы кортежей, помеченные элементы кортежа |
4.1 | 19 ноября 2020 г. | Типы литералов шаблона, переназначение ключей в отображаемых типах, рекурсивные условные типы |
4.2 | 25 февраля 2021 г. | Более разумное сохранение псевдонимов типов, ведущие и средние элементы в типах кортежей, более строгие проверки in оператор, abstract создавать подписи
|
4.3 | 26 мая 2021 г. | Отдельные типы записи для свойств, override и --noImplicitOverride флаг, улучшения типа строки шаблона
|
4.4 | 26 августа 2021 г. | Анализ потока управления псевдонимами условий и дискриминантов, сигнатур индексов шаблонов символов и строк шаблона |
4.5 | 17 ноября 2021 г. | Введите и обещайте улучшения, поддерживая библиотеки из node_modules , типы строк шаблона в качестве дискриминантов и es2022 модуль
|
4.6 | 28 февраля 2022 г. | Улучшения вывода типов и проверок, поддержка цели ES2022, улучшенная обработка ECMAScript. |
4.7 | 24 мая 2022 г. | Поддержка модулей ES, выражений создания экземпляров, аннотаций отклонений для параметров типа, улучшенных проверок потока управления и улучшений проверки типов. |
4.8 | 25 августа 2022 г. | Улучшения типов пересечений и объединений, улучшенный вывод типов. |
4.9 | 15 ноября 2022 г. | satisfies оператор, автоматические методы доступа в классах (предложение), улучшения в сужении типов и проверках
|
5.0 | 16 марта 2023 г. | Декораторы ES (предложение), улучшения вывода типов, bundler режим разрешения модуля, оптимизация скорости и размера
|
5.1 | 1 июня 2023 г. | Более простой неявный возврат для undefined и несвязанные типы для геттеров и сеттеров
|
5.2 | 24 августа 2023 г. | using объявления и явное управление ресурсами, метаданные декоратора, а также именованные и анонимные элементы кортежа.
|
5.3 | 20 ноября 2023 г. | Улучшенное сужение типов, проверка правильности и оптимизация производительности. |
5.4 | 6 марта 2024 г. | Object.groupBy и Map.groupBy поддерживать
|
5.5 (Бета) | 25 апреля 2024 г. | Предикаты выведенного типа, проверка синтаксиса регулярных выражений и импорт типов в JSDoc |
См. также [ править ]
Ссылки [ править ]
Цитаты [ править ]
- ^ «ТипСкрипт» . КодПлекс . Архивировано из оригинала 3 апреля 2015 года . Проверено 26 апреля 2015 г.
- ^ «Выпуск TypeScript 5.4 microsoft/TypeScript» . 6 марта 2024 г. Проверено 19 марта 2024 г.
- ^ «Типовая совместимость» . Типскрипт . Проверено 21 марта 2018 г.
- ^ «Ранняя история F #» (PDF) .
TypeScript находился под прямым влиянием F#: одним из создателей TypeScript был Люк Хобан, который начал работу над TypeScript (тогда он назывался Strada) сразу после работы над F# 2.0. Недавно он отметил влияние F# на ранние части дизайна TypeScript [Hoban 2017].
- ^ Нельсон, Гэри (28 апреля 2020 г.). «Как ActionScript предвосхитил TypeScript» . Середина . Проверено 9 июля 2022 г.
- ^ Брайт, Питер (3 октября 2012 г.). «Microsoft TypeScript: нужный нам JavaScript или решение, ищущее проблему?» . Арс Техника . Конде Наст . Проверено 26 апреля 2015 г.
- ^ «Программирование TypeScript с использованием кода Visual Studio» . code.visualstudio.com . Проверено 12 февраля 2019 г.
- ^ "Борисянков/DefinitelyTyped" . Гитхаб . Проверено 26 апреля 2015 г.
- ^ Фоли, Мэри Джо (1 октября 2012 г.). «Microsoft раскрывает секреты TypeScript, расширенной версии JavaScript» . ЗДНет . CBS Интерактив . Проверено 26 апреля 2015 г.
- ^ Сомасегар, С. (1 октября 2012 г.). «Блог Сомасегара» . Майкрософт . Проверено 26 апреля 2015 г.
- ^ Бакстер-Рейнольдс, Мэтт (1 октября 2012 г.). «Microsoft TypeScript: может ли отец C# спасти нас от тирании JavaScript?» . ЗДНет . Проверено 26 апреля 2015 г.
- ^ Джексон, Иоав (1 октября 2012 г.). «Microsoft расширяет возможности Javascript для крупномасштабной разработки» . ИТ-директор . Предприятие ИДГ . Архивировано из оригинала 17 декабря 2013 года . Проверено 26 апреля 2015 г.
- ^ «Microsoft расширяет возможности JavaScript для крупномасштабной разработки» . Инфомир . ИДГ . 1 октября 2012 года . Проверено 26 апреля 2015 г.
- ^ Тернер, Джонатан (2 апреля 2014 г.). «Анонс TypeScript 1.0» . Блог команды TypeScript Language . Майкрософт . Проверено 20 октября 2021 г.
- ^ Мигель де Икаса (1 октября 2012 г.). «TypeScript: первые впечатления» . Проверено 12 октября 2012 г.
Но TypeScript приносит разработчикам Unix лишь половину пользы от использования строго типизированного языка: строгую типизацию. Intellisense, автодополнение кода и рефакторинг — это инструменты, доступные только пользователям Visual Studio Professional в Windows. Нет поддержки Eclipse, MonoDevelop или Emacs для каких-либо функций языка.
- ^ «Microsoft TypeScript: может ли отец C# спасти нас от тирании JavaScript?» . ЗДНет . 1 октября 2012 года . Проверено 12 октября 2012 г.
И я считаю, что это довольно большая ошибка. Если вы создаете веб-приложения, которые работают не на Windows, вы, скорее всего, используете Mac и, скорее всего, не используете Visual Studio. Чтобы получить IntelliSense, вам понадобится подключаемый модуль Visual Studio. Все, что вы получаете без Visual Studio, — это строгая типизация. Вы не получаете тех преимуществ производительности, которые дает IntelliSense. .
- ^ «TypeStrong: единственный пакет TypeScript, который вам когда-либо понадобится» . Гитхаб . Проверено 21 июля 2016 г.
- ^ Хиллар, Гастон (14 мая 2013 г.). «Работа с TypeScript в Visual Studio 2012» . Журнал доктора Добба . Проверено 26 апреля 2015 г.
- ^ «TypeScript 0.9 поставляется с новым компилятором и поддержкой дженериков» . Регистр . 18 июня 2013 года . Проверено 26 апреля 2015 г.
- ^ Хейлсберг, Андерс (2 апреля 2014 г.). «ТипСкрипт» . Канал 9 . Майкрософт . Проверено 26 апреля 2015 г.
- ^ Jackson, Joab (25 February 2014). "Microsoft TypeScript graduates to Visual Studio". PC World. IDG. Retrieved 26 April 2015.
- ^ Тернер, Джонатан (21 июля 2014 г.). «Новый компилятор и переход на GitHub» . Блог команды TypeScript Language . Майкрософт . Проверено 26 апреля 2015 г. [ постоянная мертвая ссылка ]
- ^ Брайт, Питер (22 сентября 2016 г.). «TypeScript, JavaScript от Microsoft для больших приложений, достигает версии 2.0» . Арс Техника . Конде Наст . Проверено 22 сентября 2016 г.
- ^ «Анонс TypeScript 3.0» . 30 июля 2018 года . Проверено 16 марта 2020 г.
- ^ «ТипСкрипт 3.0» . 30 июля 2018 года . Проверено 16 марта 2020 г.
- ^ Перейти обратно: а б «Анонс TypeScript 4.0» . Типскрипт . 20 августа 2020 г. Проверено 30 октября 2020 г. .
- ^ «Документация — TypeScript 5.0» . www.typescriptlang.org . Проверено 18 мая 2023 г.
- ^ Андерс Хейлсберг (5 октября 2012 г.). «Что такое TypeScript и почему с Андерсом Хейлсбергом» . www.hanselminites.com . Проверено 15 января 2014 г.
- ^ С. Сомасегар (1 октября 2012 г.). «TypeScript: разработка JavaScript в масштабе приложения» . msdn.com . Проверено 27 ноября 2013 г.
- ^ «Документация — TypeScript 5.2» . www.typescriptlang.org . Проверено 9 ноября 2023 г.
- ^ Клинт Финли (1 октября 2012 г.). «Microsoft анонсирует новый JavaScript-подобный язык программирования TypeScript» . ТехКранч . Проверено 27 ноября 2013 г.
- ^ «Угловой 2» . angular.io . Проверено 4 мая 2016 г.
- ^ «Добро пожаловать в TypeScript» . typescriptlang.org . Майкрософт . Проверено 26 апреля 2015 г.
- ^ «Спецификация языка TypeScript, стр. 24» (PDF) . Архивировано из оригинала (PDF) 17 ноября 2013 года.
- ^ «TypeScript: Документация — повседневные типы» . www.typescriptlang.org/ . Проверено 30 марта 2021 г.
- ^ Тернер, Джонатан (18 июня 2013 г.). «Анонс TypeScript 0.9» . Блог команды TypeScript Language . Майкрософт .
- ^ «Общие типы в машинописном тексте» . Майкрософт .
- ^ «Справочник – Союзы и виды пересечений» . www.typescriptlang.org . Проверено 30 ноября 2020 г. .
- ^ Зёнке Сотманн (31 января 2014 г.). «Введение в систему модулей TypeScript» . blog.oio.de. Архивировано из оригинала 1 февраля 2014 года . Проверено 21 февраля 2014 г.
- ^ Оливье Блох (1 октября 2012 г.). «Sublime Text, Vi, Emacs: TypeScript включен!» . Майкрософт . Проверено 28 октября 2012 г.
- ^ «Поддержка TypeScript в WebStorm 6» . ДжетБрэйнс.
- ^ «Поддержка TypeScript в ReSharper 8.1» . ДжетБрэйнс. 28 октября 2013 г.
- ^ «ReSharper: расширение Visual Studio для разработчиков .NET от JetBrains» . ДжетБрэйнс .
- ^ «атом-машинопись» . Атом . Проверено 9 января 2020 г.
- ^ «ТипСтронг/грунт-ц» . Гитхаб . Проверено 26 апреля 2015 г.
- ^ "ppedregal/typescript-maven-plugin" . Гитхаб . Проверено 26 апреля 2015 г.
- ^ "ivogabe/gulp-typescript" . Гитхаб . Проверено 14 июля 2017 г.
- ^ "sothmann/typescript-gradle-plugin" . Гитхаб . Проверено 26 апреля 2015 г.
- ^ «ТСЛинт» . palantir.github.io .
- ^ Палантир (19 февраля 2019 г.). «ТСЛинт в 2019 году» . Середина . Проверено 24 апреля 2019 г.
- ^ «TSLint устарел, чтобы сосредоточить поддержку на typescript-eslint» . ИнфоQ . Проверено 24 апреля 2019 г.
- ^ «КодДОМ» . Learn.microsoft.com .
- ^ «КодДОМПровидер» . Learn.microsoft.com .
- ^ «Поставщик TypeScript CodeDOM» . github.com .
Источники [ править ]
- «Webclipse: плагин Eclipse» Genuitec. Проверено 9 ноября 2016 г.
- «Angular IDE от Webclipse: автономная IDE» Genuitec. Проверено 9 ноября 2016 г.
Внешние ссылки [ править ]
- Машинопись
- программное обеспечение 2012 года
- Кроссплатформенное программное обеспечение
- Семейство языков программирования JavaScript
- бесплатное программное обеспечение Майкрософт
- Языки программирования Майкрософт
- Объектно-ориентированные языки программирования
- Языки программирования, созданные в 2012 году.
- Языки сценариев
- Программное обеспечение, использующее лицензию Apache
- Компиляторы исходного кода
- Статически типизированные языки программирования