Машинопись
Парадигма | Мультипарадигмальность : функциональная , универсальная , императивная , объектно-ориентированная. |
---|---|
Разработано | Майкрософт |
Разработчик | Майкрософт |
Впервые появился | 1 октября 2012 г [1] |
Стабильная версия | 5.5.4 [2]
/ 22 июля 2024 г |
Дисциплина набора текста | Утка , постепенный , структурный [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 и macOS . , которая в то время [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]
Разработчики искали решение, которое не нарушило бы совместимость со стандартом ECMAScript и его экосистемой, поэтому был разработан компилятор для преобразования надмножества JavaScript с аннотациями типов и классами (файлами TypeScript) обратно в стандартный код ECMAScript 5. Классы TypeScript были основаны на предложенной тогда спецификации класса ECMAScript 6, чтобы сделать написание прототипного наследования менее многословным и подверженным ошибкам, а аннотации типов позволили использовать IntelliSense и улучшить инструменты.
Функции
[ редактировать ]TypeScript добавляет в JavaScript следующие расширения синтаксиса:
- Аннотации типов и во время компиляции проверка типов
- Вывод типа
- Интерфейсы
- Перечислимые типы
- Дженерики
- Пространства имен
- Кортежи
- Явное управление ресурсами [30]
Синтаксически TypeScript очень похож на JScript .NET , еще одну реализацию Microsoft языкового стандарта ECMA-262, в которой добавлена поддержка статической типизации и классических функций объектно-ориентированного языка, таких как классы, наследование, интерфейсы и пространства имен. Другие источники вдохновения включают Java и C# .
Введите аннотации
[ редактировать ]TypeScript обеспечивает статическую типизацию посредством аннотаций типов, что позволяет осуществлять проверку типов во время компиляции .
function add(left: number, right: number): number {
return left + right;
}
Примитивные типы аннотируются с использованием типов, написанных только строчными буквами, например number
, boolean
, bigint
, и string
. Эти типы отличаются от своих коробочных аналогов ( Number
, Boolean
и т. д.), которые не могут выполнять операции непосредственно со значениями (a Number
и number
добавить нельзя). Есть дополнительно undefined
и null
типы для соответствующих значений.
Все остальные не примитивные типы аннотируются с использованием имени их класса, например: Error
. Массивы можно записать двумя разными способами, которые синтаксически одинаковы: синтаксис на основе обобщения. Array<T>
и сокращение с T[]
.
Дополнительные встроенные типы данных — это кортежи, объединения, never
и any
:
- Массив с предопределенными типами данных по каждому индексу представляет собой кортеж, представленный как
[type1, type2, ..., typeN]
. - Переменная, которая может содержать более одного типа данных, представляет собой объединение, представленное с помощью логического ИЛИ.
|
символ (string | number
). - The
never
type используется, когда создание данного типа невозможно, что полезно для фильтрации отображаемых типов. - Значение типа
any
поддерживает те же операции, что и значение в JavaScript, и выполняется минимальная проверка статического типа, [31] что делает его подходящим для слабо или динамически типизированных структур. Обычно такая практика не рекомендуется, и ее следует избегать, когда это возможно. [32]
Аннотации типов можно экспортировать в отдельный файл объявлений, чтобы сделать информацию о типе доступной для сценариев TypeScript, использующих типы, уже скомпилированные в JavaScript. Аннотации можно объявить для существующей библиотеки JavaScript, как это было сделано для Node.js и jQuery .
Компилятор TypeScript использует вывод типа , когда типы не заданы. Например, add
метод в приведенном выше коде будет считаться возвращающим number
даже если аннотация типа возвращаемого значения не была предоставлена. Это основано на статических типах left
и right
существование number
s, и знание компилятора о том, что результат сложения двух number
s всегда number
.
Если ни один тип не может быть выведен из-за отсутствия объявлений (например, в модуле JavaScript без типов), то по умолчанию используется динамический тип. any
тип. Дополнительные типы модулей могут быть предоставлены с помощью файла объявления .d.ts с помощью declare module "moduleName"
синтаксис.
Файлы деклараций
[ редактировать ]Когда скрипт TypeScript компилируется, есть возможность сгенерировать файл объявления (с расширением .d.ts
), который функционирует как интерфейс для компонентов скомпилированного JavaScript. При этом компилятор удаляет все тела функций и методов и сохраняет только сигнатуры экспортируемых типов. Полученный файл объявления затем можно использовать для описания экспортированных виртуальных типов TypeScript библиотеки или модуля JavaScript, когда сторонний разработчик использует его из TypeScript.
Концепция файлов объявлений аналогична концепции файлов заголовков в C/C++ .
declare namespace Arithmetics {
add(left: number, right: number): number;
subtract(left: number, right: number): number;
multiply(left: number, right: number): number;
divide(left: number, right: number): number;
}
Файлы объявлений типов можно написать вручную для существующих библиотек JavaScript, как это было сделано для jQuery и Node.js.
Большие коллекции файлов объявлений для популярных библиотек JavaScript размещены на GitHub в DefinitelyTyped .
Дженерики
[ редактировать ]TypeScript поддерживает универсальное программирование с использованием синтаксиса, аналогичного Java . [33] Ниже приведен пример функции идентичности . [34]
function id<T>(x: T): T {
return x;
}
Классы
[ редактировать ]TypeScript использует тот же стиль аннотаций для методов и полей класса, что и для функций и переменных соответственно. По сравнению с обычными классами JavaScript, класс TypeScript также может реализовывать интерфейс через implements
ключевое слово, используйте общие параметры аналогично Java и укажите общедоступные и закрытые поля.
class Person {
public name: string;
private age: number;
private salary: number;
constructor(name: string, age: number, salary: number) {
this.name = name;
this.age = age;
this.salary = salary;
}
toString(): string {
return `${this.name} (${this.age}) (${this.salary})`;
}
}
Типы союзов
[ редактировать ]Типы объединения поддерживаются в TypeScript. [35] Значения неявно «помечены» типом языка и могут быть получены с помощью typeof
призывать к примитивным ценностям и instanceof
сравнение сложных типов данных. Типы с перекрывающимся использованием (например, метод среза существует как для строк, так и для массивов, оператор плюс работает как со строками, так и с числами) не требуют дополнительного сужения для использования этих функций.
function successor(n: number | bigint): number | bigint {
// types that support the same operations don't need narrowing
return ++n;
}
function dependsOnParameter(v: string | Array<string> | number) {
// distinct types need narrowing
if (v instanceof Array) {
// do something
} else if (typeof(v) === "string") {
// do something else
} else {
// has to be a number
}
}
Перечислимые типы
[ редактировать ]TypeScript добавляет в JavaScript тип данных enum.
enum Cardsuit {Clubs, Diamonds, Hearts, Spades};
var c: Cardsuit = Cardsuit.Diamonds;
По умолчанию члены перечисления нумеруются, начиная с 0; это можно переопределить, установив значение первого:
enum Cardsuit {Clubs = 1, Diamonds, Hearts, Spades};
var c: Cardsuit = Cardsuit.Diamonds;
Все значения могут быть установлены:
enum Cardsuit {Clubs = 1, Diamonds = 2, Hearts = 4, Spades = 8};
var c: Cardsuit = Cardsuit.Diamonds;
TypeScript поддерживает сопоставление числового значения с его именем. Например, это находит имя значения 2:
enum Cardsuit {Clubs = 1, Diamonds, Hearts, Spades};
var suitName: string = Cardsuit[2];
alert(suitName);
Модули и пространства имен
[ редактировать ]TypeScript различает модули и пространства имен. Обе функции TypeScript поддерживают инкапсуляцию классов, интерфейсов, функций и переменных в контейнеры. Пространства имен (ранее внутренние модули) используют немедленно вызываемые функциональные выражения JavaScript для инкапсуляции кода, тогда как модули (ранее внешние модули) используют существующие шаблоны библиотеки JavaScript ( модули CommonJS или ES). [36]
Совместимость с JavaScript
[ редактировать ]Поскольку TypeScript — это просто надмножество JavaScript, существующий JavaScript можно быстро адаптировать к TypeScript, а программа TypeScript может беспрепятственно использовать JavaScript. Компилятор может работать со всеми версиями ECMAScript 5 и выше, перенося современные функции, такие как классы и стрелочные функции, в их старые аналоги.
С помощью TypeScript можно использовать существующий код JavaScript, включать популярные библиотеки JavaScript и вызывать код, сгенерированный TypeScript, из другого JavaScript. [37] Объявления типов для этих библиотек обычно предоставляются вместе с исходным кодом, но при необходимости их можно объявить или установить отдельно.
Инструменты разработки
[ редактировать ]Компилятор
[ редактировать ]Компилятор 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 . [38]
- Visual Studio Code поддерживает TypeScript в дополнение к нескольким другим языкам и предлагает такие функции, как отладка и интеллектуальное завершение кода .
- alm.tools — это облачная IDE с открытым исходным кодом для TypeScript, созданная с использованием TypeScript, ReactJS и TypeStyle.
- JetBrains поддерживает TypeScript с завершением кода, рефакторингом и отладкой в своих IDE, построенных на платформе IntelliJ, таких как PhpStorm 6, WebStorm 6 и IntelliJ IDEA . [39] а также надстройка и расширение Visual Studio ReSharper 8.1. [40] [41]
- У Atom есть плагин TypeScript с поддержкой автодополнения кода, навигации, форматирования и быстрой компиляции. [42]
- Онлайн-среда 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 [43] ), Apache Maven (плагин TypeScript Maven [44] ), Gulp (gulp-typescript [45] ) и Gradle (плагин TypeScript Gradle [46] ).
Инструменты для линтинга
[ редактировать ]ТСлинт [47] сканирует код TypeScript на соответствие набору стандартов и рекомендаций. ESLint , стандартный линтер JavaScript, также обеспечивает некоторую поддержку TypeScript через плагины сообщества. Однако неспособность ESLint использовать языковые службы TypeScript препятствовала определенным формам семантического анализа и общепрограммного анализа. [48] В начале 2019 года команда TSLint объявила об отказе от поддержки линтера в пользу typescript-eslint
, совместная работа команд TSLint, ESLint и TypeScript по консолидации линтинга под эгидой ESLint для повышения производительности, единства сообщества и доступности для разработчиков. [49]
Поставщик CodeDOM
[ редактировать ]КодDOM [50] предоставляет типы, которые представляют общие типы элементов исходного кода, которые будут преобразованы в типы данных, классы, операторы и т. д. языка программирования через CodeDOMProvider. [51] Программисты используют CodeDOM и поставщик CodeDOM для создания генератора кода, который генерирует коды для домена приложения. Поставщик CodeDOM TypeScript [52] генерирует коды 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 г.
- ^ «Выпуск 5.5.4» . 22 июля 2024 г. Проверено 28 июля 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 г.
- ^ Джексон, Иоав (25 февраля 2014 г.). «Microsoft TypeScript переходит в Visual Studio» . Мир ПК . ИДГ . Проверено 26 апреля 2015 г.
- ^ Тернер, Джонатан (21 июля 2014 г.). «Новый компилятор и переход на GitHub» . Блог команды TypeScript Language . Майкрософт. Архивировано из оригинала 22 июля 2014 года . Проверено 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 г.
- ^ «Спецификация языка 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 г.
- ^ «Добро пожаловать в TypeScript» . typescriptlang.org . Майкрософт . Проверено 26 апреля 2015 г.
- ^ Оливье Блох (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
- Компиляторы исходного кода
- Статически типизированные языки программирования