Основы синтаксиса TypeScript
Программа на TypeScript состоит из следующих частей:
- Модули
- Функции
- Переменные
- Инструкции и выражения
- Комментарии
Первая программа на TypeScript
Мы можем использовать следующую программу на TypeScript для вывода "Hello World":
Приведённый выше код сначала компилируется с помощью командыtsc:
tsc Example.ts
Получается следующий js-код:
Код файла Example.js:
Наконец, мы используем команду node для выполнения этого js-кода.
$ node Example.js Hello World
Весь процесс показан на следующем рисунке:

Мы можем скомпилировать несколько ts-файлов одновременно:
tsc file1.ts file2.ts file3.ts
Часто используемые параметры компиляции tsc показаны в следующей таблице:
| Нет. | Описание параметра компиляции |
|---|---|
| 1. | --help Показать справочную информацию |
| 2. | --module Загрузить расширяющие модули |
| 3. | --target Установить версию ECMA |
| 4. | --declaration Дополнительно создать файл с расширением .d.ts. tsc ts-hw.ts --declaration Приведённая выше команда создаст два файла: ts-hw.d.ts и ts-hw.js. |
| 5. | --removeComments Удаление комментариев из файлов |
| 6. | --out Скомпилировать несколько файлов и объединить их в один выходной файл |
| 7. | --sourcemap Создать файл sourcemap (.map). Sourcemap — это информационный файл, в котором хранится сопоставление соответствующих позиций между исходным кодом и скомпилированным кодом. |
| 8. | --module noImplicitAny Сообщать об ошибке, когда в выражениях и объявлениях присутствует неявный тип any. |
| 9. | --watch Запустить компилятор в режиме отслеживания. Он будет отслеживать выходные файлы и перекомпилировать их при изменениях. |
Зарезервированные ключевые слова TypeScript
Зарезервированные ключевые слова TypeScript показаны в следующей таблице:
| Ключевое слово | Описание |
|---|---|
abstract | Используется для определения абстрактных классов или абстрактных методов. |
any | Представляет тип any, отключая проверку типов. |
as | Утверждение типа, используется для преобразования одного типа в другой. |
await | Используется в async-функциях для приостановки выполнения кода до тех пор, пока Promise не разрешится. |
boolean | Представляет тип boolean. |
break | Выходит из цикла или оператора switch. |
case | Используется для ветвей в операторе switch. |
catch | Используется для перехвата исключений. |
class | Используется для определения класса. |
const | Определяет константную переменную. |
continue | Пропускает текущую итерацию цикла и переходит к следующей. |
debugger | Запускает отладчик и приостанавливает выполнение кода. |
declare | Объявляет переменную или модуль; обычно используется в файлах объявления типов. |
default | Определяет ветвь default оператора switch. |
delete | Удаляет свойство объекта или элемент массива. |
do | Используется вdo...whileциклах. |
else | Определяет ветвь else в условном операторе. |
enum | Определяет тип enum. |
export | Используется для экспорта переменных, функций или классов из модуля. |
extends | Используется для наследования классов, указывая, что класс наследуется от другого класса. |
false | Логическое значениеfalse。 |
finally | Определяетtry...catchфинальный блок выполнения кода в операторе. |
for | Используется вforциклах. |
from | Используется в операторах import для указания источника модуля. |
function | Определяет функцию. |
get | Используется для геттер-метода объекта. |
if | Используется для условной проверки. |
implements | Используется, когда класс реализует интерфейс. |
import | Используется для импорта содержимого из модуля. |
in | Используется для проверки, содержит ли объект указанное свойство, или используется вfor...inциклах. |
infer | Используется для вывода типов в условных типах. |
instanceof | Проверяет, является ли объект экземпляром указанного класса. |
interface | Используется для определения интерфейса. |
let | Определяет переменную с блочной областью видимости. |
module | Определяет модуль (используется в ранних версиях TypeScript). |
namespace | Определяет пространство имён (используется в ранних версиях TypeScript). |
new | Создаёт экземпляр класса. |
null | Представляет значение null. |
number | Представляет тип number. |
object | Представляет непримитивный тип. |
of | Используется вfor...ofциклах. |
package | Используется в системе модулей для идентификации пакетов. |
private | Используется как модификатор доступа для членов класса, обозначающий private. |
protected | Используется как модификатор доступа для членов класса, обозначающий protected. |
public | Используется как модификатор доступа для членов класса, обозначающий public. |
readonly | Обозначает свойство только для чтения. |
require | Используется для импорта модулей CommonJS. |
return | Завершает функцию и может возвращать значение. |
set | Используется для метода-сеттера объекта. |
string | Представляет тип string. |
super | Используется для вызова метода или конструктора родительского класса. |
switch | Используется в операторах switch. |
symbol | Представляет тип symbol. |
this | Ссылается на экземпляр текущего класса или объекта. |
throw | Выбрасывает исключение. |
try | Используется в операторах обработки исключенийtry...catch。 |
true | Логическое значениеtrue。 |
type | Используется для определения псевдонима типа. |
typeof | Получает тип переменной или выражения. |
undefined | Представляет значение undefined. |
unique | Используется дляsymbolуникальный идентификатор типа. |
var | Используется для объявления переменных (больше не рекомендуется). |
void | Представляет тип без возвращаемого значения. |
while | Используется вwhileциклах. |
with | Используется для создания области видимости, в которой можно опускать ссылки на объект (не рекомендуется). |
yield | Используется в функциях-генераторах для приостановки и возобновления выполнения генератора. |
Пробельные символы и переводы строк
TypeScript игнорирует пробелы, табуляции и переводы строк, которые встречаются в программе.
Пробелы и табуляции обычно используются для отступов в коде, что облегчает его чтение и понимание.
TypeScript чувствителен к регистру
TypeScript различает символы верхнего и нижнего регистра.
Точки с запятой необязательны
Каждая строка инструкций — это оператор. Вы можете использовать точки с запятой или нет. В TypeScript точки с запятой необязательны, но их рекомендуется использовать.
Следующий код полностью корректен:
console.log("Example")
console.log("Google");
Если операторы записаны в одной строке, для их разделения необходимо использовать точки с запятой, иначе будет выдана ошибка, например:
console.log("Example");console.log("Google");
Комментарии в TypeScript
Комментирование — хорошая привычка. Хотя многие программисты не любят комментарии, всё же рекомендуется писать текстовые пояснения в каждом фрагменте кода.
Комментарии могут улучшить читаемость программы.
Комментарии могут содержать некоторую информацию о программе, например об авторе кода, описания функций и т. д.
Компилятор игнорирует комментарии.
TypeScript поддерживает два типа комментариев
Однострочные комментарии ( // )− текст после // является содержимым комментария.
Многострочные комментарии (/* */)− такой тип комментария может занимать несколько строк.
Примеры комментариев:
// This is a single-line comment /* This is a multi-line comment This is a multi-line comment This is a multi-line comment */
TypeScript и объектно-ориентированное программирование
Объектно-ориентированное программирование — это способ понимания и абстрагирования реального мира.
TypeScript — объектно-ориентированный язык программирования.
В объектно-ориентированном программировании в основном есть два понятия: объекты и классы.
- Объект: Объект — это экземпляр класса (объект не означает найти девушку), у него есть состояние и поведение. Например, собака — это объект. Его состояния включают: цвет, имя, породу; его поведение включает: виляние хвостом, лай, поедание и т. д.
- Класс: Класс — это шаблон, описывающий поведение и состояние класса объектов.
- Метод: Метод — это шаги реализации операций класса.
На рисунке ниже,girl、boy— это класс, а каждый конкретный человек — объект этого класса:

Пример объектно-ориентированного программирования на TypeScript:
В приведённом выше примере определяется класс Site, который имеет метод name(). Этот метод выводит строку Example в терминал.
Ключевое слово `new` создаёт объект класса, и этот объект вызывает метод name().
Сгенерированный код JavaScript после компиляции выглядит следующим образом:
Выполнение приведённого выше кода JavaScript даёт следующий вывод:
ExampleДругие расширения