TypeScript учебник
Начало работы с TypeScript
Поиск…
замечания
TypeScript - это надмножество JavaScript, которое преобразуется в JavaScript. Создавая ECMAScript-совместимый код, TypeScript может внедрять новые языковые функции, сохраняя при этом совместимость с существующими механизмами JavaScript. В настоящее время поддерживаются ES3, ES5 и ES6.
Необязательные типы являются основной особенностью. Типы позволяют статическую проверку с целью обнаружения ошибок на раннем этапе и могут улучшить оснастку с такими функциями, как рефакторинг кода.
TypeScript - это язык с открытым исходным кодом и кроссплатформенным программированием, разработанный Microsoft. Исходный код доступен на GitHub .
Версии
Версия | Дата выхода |
---|---|
2.4.1 | 2017-06-27 |
2.3.2 | 2017-04-28 |
2.3.1 | 2017-04-25 |
2.3.0 beta | 2017-04-04 |
2.2.2 | 2017-03-13 |
2,2 | 2017-02-17 |
2.1.6 | 2017-02-07 |
2.2 бета | 2017-02-02 |
2.1.5 | 2017-01-05 |
2.1.4 | 2016-12-05 |
2.0.8 | 2016-11-08 |
2.0.7 | 2016-11-03 |
2.0.6 | 2016-10-23 |
2.0.5 | 2016-09-22 |
2.0 Beta | 2016-07-08 |
1.8.10 | 2016-04-09 |
1.8.9 | 2016-03-16 |
1.8.5 | 2016-03-02 |
1.8.2 | 2016-02-17 |
1.7.5 | 2015-12-14 |
1,7 | 2015-11-20 |
1,6 | 2015-09-11 |
1.5.4 | 2015-07-15 |
1,5 | 2015-07-15 |
1.4 | 2015-01-13 |
1,3 | 2014-10-28 |
1.1.0.1 | 2014-09-23 |
Установка и настройка
Фон
TypeScript - это типизированный супермног JavaScript, который компилируется непосредственно в код JavaScript. Файлы TypeScript обычно используют расширение .ts
. Многие IDE поддерживают TypeScript без какой-либо другой настройки, но TypeScript также может быть скомпилирован с пакетом TypeScript Node.JS из командной строки.
Иды
Visual Studio
-
Visual Studio 2015
включает в себя TypeScript. -
Visual Studio 2013 Update 2
или более поздней версии включает в себя TypeScript, или вы можете загрузить TypeScript для более ранних версий .
Код Visual Studio
- Код Visual Studio (vscode) предоставляет контекстный автозаполнение, а также инструменты рефакторинга и отладки для TypeScript. vscode сам реализуется в TypeScript. Доступно для Mac OS X, Windows и Linux.
WebStorm
-
WebStorm 2016.2
поставляется с TypeScript и встроенным компилятором. [Webstorm не является бесплатным]
IntelliJ IDEA
-
IntelliJ IDEA 2016.2
имеет поддержку Typcript и компилятора через плагин, поддерживаемый командой Jetbrains. [IntelliJ не является бесплатным]
Atom и atom-typescript
-
Atom
поддерживает TypeScript с пакетом atom-typescript .
Возвышенный текст
-
Sublime Text
поддерживает TypeScript с пакетом typescript .
Установка интерфейса командной строки
Установите Node.js
Установите пакет npm по всему миру
Вы можете установить TypeScript по всему миру, чтобы иметь доступ к нему из любого каталога.
npm install -g typescript
или же
Установите пакет npm локально
Вы можете установить TypeScript локально и сохранить в package.json, чтобы ограничить каталог.
npm install typescript --save-dev
Каналы установки
Вы можете установить из:
- Стабильный канал:
npm install typescript
- Бета-канал:
npm install typescript@beta
- Dev канал:
npm install typescript@next
Компиляция кода типа
Команда компиляции tsc
поставляется с typescript
tsc
, который можно использовать для компиляции кода.
tsc my-code.ts
Это создает файл my-code.js
.
Компилировать с помощью tsconfig.json
Вы также можете предоставить параметры компиляции, которые перемещаются вместе с вашим кодом через файл tsconfig.json
. Чтобы запустить новый проект TypeScript, введите cd
в корневой каталог вашего проекта в окне терминала и запустите tsc --init
. Эта команда создаст файл tsconfig.json
с минимальными параметрами конфигурации, как tsconfig.json
ниже.
{ "compilerOptions": { "module": "commonjs", "target": "es5", "noImplicitAny": false, "sourceMap": false, "pretty": true }, "exclude": [ "node_modules" ] }
С файлом tsconfig.json
размещенным в корне вашего проекта TypeScript, вы можете использовать команду tsc
для запуска компиляции.
Привет, мир
class Greeter {
greeting: string;
constructor(message: string) {
this.greeting = message;
}
greet(): string {
return this.greeting;
}
};
let greeter = new Greeter("Hello, world!");
console.log(greeter.greet());
Здесь у нас есть класс Greeter
, который имеет constructor
и метод greet
. Мы можем построить экземпляр класса с использованием new
ключевого слова и передать строку, которую мы хотим, чтобы метод greet
выводил на консоль. Экземпляр нашего класса Greeter
хранится в переменной greeter
которую мы тогда называем greet
методом.
Основной синтаксис
TypeScript является типизированным надмножеством JavaScript, что означает, что весь код JavaScript является допустимым кодом TypeScript. TypeScript добавляет много новых функций поверх этого.
TypeScript делает JavaScript более похожим на строго типизированный объектно-ориентированный язык, родственный C # и Java. Это означает, что код типа TypeScript легче использовать для больших проектов, и этот код, как правило, легче понять и поддерживать. Сильная типизация также означает, что язык может (и есть) предварительно скомпилирован и что переменным нельзя присвоить значения, которые не соответствуют объявленному диапазону. Например, когда переменная TypeScript объявляется как число, вы не можете назначить ему текстовое значение.
Эта сильная типизация и ориентация объектов упрощают отладку и поддержку TypeScript, и это были две из самых слабых точек стандартного JavaScript.
Объявления типа
Вы можете добавлять объявления типов к переменным, функциональным параметрам и типам возвращаемых функций. Тип записывается после двоеточия, следующего за именем переменной, например: var num: number = 5;
Затем компилятор проверяет типы (где это возможно) во время компиляции и ошибок типа отчета.
var num: number = 5;
num = "this is a string"; // error: Type 'string' is not assignable to type 'number'.
Основные типы:
-
number
(оба целых числа и числа с плавающей запятой) -
string
-
boolean
-
Array
. Вы можете указать типы элементов массива. Существует два эквивалентных способа определения типов массивов:Array<T>
иT[]
. Например:-
number[]
- массив чисел -
Array<string>
- массив строк
-
- Кортежи. Кортежи имеют фиксированное количество элементов с определенными типами.
-
[boolean, string]
- кортеж, где первый элемент является логическим, а второй - строкой. -
[number, number, number]
- кортеж из трех чисел.
-
-
{}
- объект, вы можете определить его свойства или индексатор-
{name: string, age: number}
- объект с атрибутами имени и возраста -
{[key: string]: number}
- словарь чисел, индексированных по строке
-
-
enum
-{ Red = 0, Blue, Green }
- перечисление, сопоставленное с числами - Функция. Вы указываете типы параметров и возвращаемое значение:
-
(param: number) => string
- функция, возвращающая строку с номером номера -
() => number
- функция без параметров, возвращающих число. -
(a: string, b?: boolean) => void
- функция, берущая строку и необязательно логическую, без возвращаемого значения.
-
-
any
- Разрешает любой тип. Выражения, связанные сany
, не проверяются типом. -
void
- представляет «ничего», может использоваться как возвращаемое значение функции. Толькоnull
иundefined
являются частью типаvoid
. -
never
-
let foo: never;
- Как тип переменных под типом, которые никогда не верны. -
function error(message: string): never { throw new Error(message); }
- как возвращаемый тип функций, которые никогда не возвращаются.
-
-
null
- тип для значенияnull
.null
неявно является частью каждого типа, если только не установлены строгие проверки нулей.
Кастинг
Вы можете выполнить явное литье через угловые скобки, например:
var derived: MyInterface;
(<ImplementingClass>derived).someSpecificMethod();
В этом примере показан derived
класс, который обрабатывается компилятором как MyInterface
. Без кастинга на второй строке компилятор выкинул исключение, поскольку он не понимает someSpecificMethod()
, но <ImplementingClass>derived
из <ImplementingClass>derived
предполагает компилятор, что делать.
Другой способ кастинга в Typcript - использовать ключевое слово as
:
var derived: MyInterface;
(derived as ImplementingClass).someSpecificMethod();
Начиная с TypScript 1.6, по умолчанию используется ключевое слово as
, так как использование <>
неоднозначно в файлах .jsx . Это указано в официальной документации Typcript .
Классы
Классы могут быть определены и использованы в коде TypeScript. Дополнительные сведения о классах см. На странице документации классов .
TypeScript REPL в Node.js
Для использования TypeScript REPL в Node.js вы можете использовать пакет tsun
Установите его глобально с помощью
npm install -g tsun
и запустите в своем терминале или командной строке команду tsun
Пример использования:
$ tsun
TSUN : TypeScript Upgraded Node
type in TypeScript expression to evaluate
type :help for commands in repl
$ function multiply(x, y) {
..return x * y;
..}
undefined
$ multiply(3, 4)
12
Запуск TypeScript с использованием ts-узла
ts-node представляет собой пакет npm, который позволяет пользователю запускать файлы машинописных файлов напрямую, без необходимости предварительной tsc
с использованием tsc
. Он также предоставляет REPL .
Установите ts-node глобально, используя
npm install -g ts-node
ts-node не связывает машинописный компилятор, поэтому вам, возможно, потребуется его установить.
npm install -g typescript
Выполнение скрипта
Чтобы выполнить скрипт с именем main.ts , запустите
ts-node main.ts
// main.ts console.log("Hello world");
Пример использования
$ ts-node main.ts
Hello world
Запуск REPL
Для запуска команды REPL run ts-node
Пример использования
$ ts-node
> const sum = (a, b): number => a + b;
undefined
> sum(2, 2)
4
> .exit
Чтобы выйти из команды REPL use .exit
или дважды нажмите CTRL+C