Поиск…


замечания

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

  • Код 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

Возвышенный текст

Установка интерфейса командной строки

Установите 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



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow