add typescript
This commit is contained in:
60
docs/typescript/01-intro.md
Normal file
60
docs/typescript/01-intro.md
Normal file
@@ -0,0 +1,60 @@
|
||||
---
|
||||
sidebar_position: 1
|
||||
---
|
||||
|
||||
# Зачем нужен TS
|
||||
|
||||
TypeScript — это язык программирования, который расширяет JavaScript, добавляя статическую типизацию и другие возможности.
|
||||
|
||||
Вот основные причины, зачем он нужен:
|
||||
|
||||
1. **Статическая типизация:**
|
||||
- TypeScript позволяет определять типы переменных, параметров функций и возвращаемых значений. Это помогает находить ошибки на этапе разработки, а не во время выполнения кода.
|
||||
- Например, если вы случайно передадите строку вместо числа, TypeScript выдаст ошибку.
|
||||
|
||||
2. **Улучшение читаемости и поддержки кода:**
|
||||
- Типы делают код более понятным и самодокументируемым. Легче понять, какие данные ожидаются и возвращаются в функциях.
|
||||
- Это особенно полезно в больших проектах или при работе в команде.
|
||||
|
||||
3. **Инструменты разработки:**
|
||||
- TypeScript интегрируется с современными IDE (например, Visual Studio Code), предоставляя автодополнение, навигацию по коду и подсказки на основе типов.
|
||||
- Это ускоряет разработку и уменьшает количество ошибок.
|
||||
|
||||
4. **Совместимость с JavaScript:**
|
||||
- TypeScript — это надмножество JavaScript, поэтому любой валидный JS-код является валидным TypeScript-кодом.
|
||||
- Вы можете постепенно внедрять TypeScript в существующие проекты.
|
||||
|
||||
5. **Поддержка современных возможностей:**
|
||||
- TypeScript поддерживает современные функции ES6+ (например, классы, модули, стрелочные функции), даже если целевая среда выполнения (например, старые браузеры) их не поддерживает. TypeScript компилирует их в совместимый код.
|
||||
|
||||
6. **Повышение надежности:**
|
||||
- Статическая типизация и проверка типов снижают вероятность ошибок, связанных с неправильным использованием данных.
|
||||
- Это особенно важно в больших и сложных приложениях.
|
||||
|
||||
7. **Поддержка ООП:**
|
||||
- TypeScript предоставляет более мощные инструменты для объектно-ориентированного программирования, такие как интерфейсы, абстрактные классы, модификаторы доступа (`public`, `private`, `protected`).
|
||||
|
||||
8. **Экосистема и сообщество:**
|
||||
- TypeScript активно развивается и поддерживается Microsoft. Он широко используется в индустрии, особенно в крупных проектах (например, Angular, React, Node.js).
|
||||
|
||||
TypeScript помогает писать более надежный, читаемый и поддерживаемый код, особенно в больших проектах. Он сочетает гибкость JavaScript с преимуществами статической типизации.
|
||||
|
||||
TypeScript также включает в себя транспилятор, который преобразует TypeScript-код в JavaScript.
|
||||
|
||||
Как работает TypeScript:
|
||||
|
||||
1. **Проверка типов:**
|
||||
- TypeScript сначала проверяет типы в коде. Если есть ошибки (например, передача строки вместо числа), компилятор выдаст ошибку.
|
||||
2. **Транспиляция:**
|
||||
- После проверки типов TypeScript преобразует TypeScript-код в JavaScript. При этом он удаляет все типы и аннотации, так как они не нужны в рантайме.
|
||||
3. **Генерация кода:**
|
||||
- TypeScript генерирует JavaScript-код, который может быть выполнен в любой среде, поддерживающей JavaScript.
|
||||
|
||||
### Babel и TypeScript вместе
|
||||
Babel и TypeScript могут использоваться вместе. Например:
|
||||
|
||||
1. **TypeScript для проверки типов:**
|
||||
- TypeScript используется только для проверки типов, а транспиляцию выполняет Babel.
|
||||
- Это позволяет использовать все возможности Babel (например, экспериментальные функции JavaScript).
|
||||
2. **Babel для транспиляции:**
|
||||
- Babel может транспилировать TypeScript-код с помощью плагина `@babel/preset-typescripts`. Этот плагин удаляет типы и преобразует код в JavaScript.
|
||||
Reference in New Issue
Block a user