Skip to content

Commit dc7d6d9

Browse files
committed
create github info configurator.
1 parent 323effa commit dc7d6d9

File tree

111 files changed

+6425
-6933
lines changed
  • book/ru
    • chapters
      • 000.(Общее) Что такое и для чего нужен TypeScript
      • 001.(Экскурс в типизацию) Вступление
      • 002.(Экскурс в типизацию) Система типов, тип данных, значимые и ссылочные типы
      • 003.(Экскурс в типизацию) Связывание, типизация, вывод типов
      • 004.(Экскурс в типизацию) Преобразование типов
      • 005.(Экскурс в типизацию) Типизированные и нетипизированные языки программирования
      • 006.(Экскурс в типизацию) Статическая и динамическая типизация
      • 007.(Экскурс в типизацию) Сильная и слабая типизация
      • 008.(Экскурс в типизацию) Явная и неявная типизация
      • 009.(Экскурс в типизацию) Совместимость типов на основе вида типизации
      • 010.(Экскурс в типизацию) Совместимость типов на основе вариантности
      • 011.(Синтаксические конструкции) Аннотация типов
      • 012.(Типы) Базовый тип Any
      • 013.(Типы) Примитивные типы Number, String, Boolean, Symbol, BigInt
      • 014.(Типы) Примитивные типы Null, Undefined, Void, Never, Unknown
      • 015.(Типы) Примитивный тип Enum
      • 016.(Типы) Union, Intersection
      • 017.(Типы) Type Queries (запросы типа), Alias (псевдонимы типа)
      • 018.(Типы) Примитивные литеральные типы Number, String, Boolean, Unique Symbol, Enum
      • 019.(Типы) Object, Array, Tuple
      • 020.(Типы) Function, Functional Types
      • 021.(Типы) Interface
      • 022.(Типы) Объектные типы с индексными членами (объектный тип с динамическими ключами)
      • 023.(Классы) Модификаторы доступа
      • 024.(Классы) Абстрактные классы
      • 025.(Классы) Полиморфный тип this
      • 026.(Классы) Модификатор readonly
      • 027.(Классы) Definite Assignment Assertion Modifier
      • 028.(Классы) Тонкости extends и implements
      • 029.(Тонкости TypeScript) Различия var, let, const и модификатора readonly при неявном указании примитивных типов
      • 030.(Работа с типами) Операторы - Optional, Not-Null, Not-Undefined, Definite Assignment Assertion
      • 031.(Типы) Обобщения (Generics)
      • 032.(Типы) Tagged Union
      • 033.(Типизация) Утверждение типов
      • 034.(Типизация) Защитники типа
      • 035.(Типизация) Вывод типов
      • 036.(Типизация) Совместимость объектов
      • 037.(Типизация) Совместимость функций
      • 038.(Типизация) Типизация в TypeScript
      • 039.(Работа с типами) Оператор keyof, Lookup Types, Mapped Types, Mapped Types - префиксы + и -
      • 040.(Работа с типами) Условные типы (Conditional Types)
      • 041.(Расширенные типы) Readonly, Partial, Required, Pick, Record
      • 042.(Расширенные типы) Exclude, Extract, NonNullable, ReturnType, InstanceType, Omit
      • 043.(Расширенные типы) Массивоподобные readonly типы, ReadonlyArray, ReadonlyMap, ReadonlySet
      • 044.(React) Расширение .tsx
      • 045.(Синтаксические конструкции) Пространства имен (namespace) и модули (module)
      • 046.(Сборка) Настройка рабочего окружения
      • 047.(Сборка) Сборка с использованием ссылок на проекты
      • 048.(Сборка) Декларации
      • 049.(Сборка) Публикация
      • 050.(Компилятор) Опции компилятора
    • metadata
  • config/github-repository-token-configurator
  • what-is-new
    • 3.3
      • metadata
      • Повышение производительности сборки для команды --build --watch
      • Улучшение поведения для типов Union указанных в качестве параметров функции
    • 3.4
      • metadata
      • Массивоподобные readonly типы
      • Опции компилятора --incremental
      • Опции компилятора --tsBuildInfoFile
      • Привидение к константе (const assertion)
      • Проверка типов для globalThis
      • Расширенный тип ReadonlyArray
    • 3.5
      • metadata
      • Введение нового флага --allowUmdGlobalAccess
      • Вспомогательный тип Omit
      • Изменение логики для Object.keys для версии es5
      • Изменение правил для типа unknown и индексной сигнатуре
      • Неявное ограничение обобщенных параметров типом unknown
      • Улучшение механизма вывода типа высшего порядка для обобщенных конструкторов
      • Улучшение механизма проверки избыточных полей в объедененных типах (Union types)
      • Улучшение механизма проверки объединенных типов
    • 3.6
      • Api для поддержки --build и --incremental
      • get и set в окружающем контексте
      • metadata
      • Добавлена поддержка Unicode для идентификаторов
      • Добавление хелпера иметирующего механизм spread array при компиляции в ecmascript ниже версии 6 при неактивном флаге --downlevelIteration
      • Интеллектуальное определение синтаксиса авто-импорта
      • Повышение типобезопасности генероторов
      • Поддержка import.meta для SystemJS
      • Расширение вывода об ошибках при работе с Promise
      • Расширение системы типов типами представляющими структуры данных только для чтения
      • Слияние одноименных классов и функций из окружающего контекста
      • Строковой идентификатор функции-конструктора
    • 3.7
      • @ts-nocheck в TypeScript файлах
      • metadata
      • Оператор объединения со значением null (??)
      • Оператор опциональной последовательности (?.)
      • Проверка невызванных функций
      • Рекурсивность для псевдононимов типов
      • Совместное использование флагов --declaration и --allowJs
      • Улучшена поддержка для типа never возвращаемого из функций
      • Утверждение в сигнатуре (Signature Assertion)
  • www

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+6425
-6933
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ public/
1515
./src/
1616

1717
.env.development
18-
vue.config.js
18+
.env.github.development
19+
vue.config.js

.prettierrc.js

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
module.exports = {
2+
trailingComma: "es5",
3+
tabWidth: 2,
4+
useTabs: 2,
5+
semi: true,
6+
singleQuote: true,
7+
endOfLine: false,
8+
requirePragma: true
9+
};

.prettierrc.json

-3
This file was deleted.

CONTRIBUTING.md

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Contributing
2+
## Contributing for book
3+
## Contributing for what-is-new
4+
## Contributing for www (web application)
5+
Для того чтобы запустить приложение в _dev_ режиме необходимо соблючти несколько условий -
6+
1. Сделать _fork_ репозитория
7+
2. Клонировать репозиторий полученный на первом шаге на локальную машину
8+
3. установить _npm_ зависимости с помощью команды _npm i_ после выполнения которой автоматически запустится _npm hook_ _postinstall_ и создаст в корневой директории файл _.env.github.development_.
9+
4. Заполнить все поля в созданном файле
10+
5. Запустить приложения с помощью команды _npm run develop_
11+
12+
13+
Стоит обратить внимание что файл _.env.github.development_ будет содержать три обязательных не заполненных поля, которые необходимо указать до запуска приложения. Это необходимо поскольку для сборки приложения необходима информация предоставляемая _github_ который предоставляет свое _graphql api_ только авторизованным пользователям. Поэтому в созданном файле необходимо ввести имя _github_ пользователя, имя ветки и сгенерированный _github token_. Стоит заметить что эти данные не будут отправлены в удаленный репозиторий поскольку файл _.env.github.development_ уже добавлен в _.gitignore_. Стоит также упомянуть что при создании новой ветки изменять данные файла _.env.github.development_ не требуется поскольку обращения будут происходить за данными о файлах из прежней ветки.

README.md

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Welcome to the TypeScript Definitive Guide
2+
Подробное руководство по языку _TypeScript_.
3+
4+
## Contributors
5+
Для исключения неочевидных моментов всем желающим принять участие в развитии проекта рекомендуется ознакомиться с [правилами контрибьютинга](./CONTRIBUTING.md).
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,29 @@
11
# Что такое и для чего нужен TypeScript
2+
23
![Chapter Cover](./images/chapter-cover.png)
4+
35
## Что такое TypeScript
46

7+
_TypeScript_ - это язык программирования со статической типизацией, позиционирующий себя, как язык расширяющий возможности _JavaScript_.
58

6-
*TypeScript* - это язык программирования со статической типизацией, позиционирующий себя, как язык расширяющий возможности *JavaScript*.
7-
8-
*Typescript* код компилируется в высококачественный *JavaScript* код с которым в дальнейшем можно запускать как на клиентской стороне (браузер), так и на стороне сервера (*nodejs*). Качество сгенерированного кода сопоставимо с кодом, написанным профессиональным разработчиком с большим стажем. Мультиплатформенный компилятор *TypeScript* отличается высокой скоростью компиляции и распространяется по лицензии Apache, а его разработка сопровождается высокоэффективной поддержкой со стороны разработчиков со всего мира.
9+
_Typescript_ код компилируется в высококачественный _JavaScript_ код с которым в дальнейшем можно запускать как на клиентской стороне (браузер), так и на стороне сервера (_nodejs_). Качество сгенерированного кода сопоставимо с кодом, написанным профессиональным разработчиком с большим стажем. Мультиплатформенный компилятор _TypeScript_ отличается высокой скоростью компиляции и распространяется по лицензии Apache, а его разработка сопровождается высокоэффективной поддержкой со стороны разработчиков со всего мира.
910

1011
## История TypeScript
1112

12-
13-
Разработчиком языка *TypeScript* является ***Андерс Хейлсберг***, так же известный как создатель языков *Turbo Pascal*, *Delphi*, *C#*. С момента своего анонсирования компанией *MicroSoft* в 2012 году, *TypeScript* не перестает развиваться и склоняет все больше профессиональных разработчиков писать свои программы на нем. Поэтому на текущий момент, практически невозможно найти библиотеку, которая бы не была портирована на *TypeScript*. Мотивацией, к созданию *TypeScript*, послужила увеличивающаяся сложность приложений, которые перестали уступать своим старшим братьям, desktop приложениям.
14-
13+
Разработчиком языка _TypeScript_ является **_Андерс Хейлсберг_**, так же известный как создатель языков _Turbo Pascal_, _Delphi_, _C#_. С момента своего анонсирования компанией _MicroSoft_ в 2012 году, _TypeScript_ не перестает развиваться и склоняет все больше профессиональных разработчиков писать свои программы на нем. Поэтому на текущий момент, практически невозможно найти библиотеку, которая бы не была портирована на _TypeScript_. Мотивацией, к созданию _TypeScript_, послужила увеличивающаяся сложность приложений, которые перестали уступать своим старшим братьям, desktop приложениям.
1514

1615
## Для чего нужен TypeScript
1716

17+
Прежде всего _TypeScript_ предназначен для выявления ошибок на этапе компиляции, а не на этапе выполнения. Кроме того, за счет системы типов, разработчики получают такие возможности, как подсказки и переходы по коду, которые значительно ускоряют процесс разработки. Помимо этого, система типов, в значительной степени, избавляет разработчиков от комментирования. Отпадает потребность в комментировании происхождения кода, которая в отличии от предназначения кода, занимает большую часть времени. Также при уделении малого внимания архитектуре, система типов накладывает ограничения, которые выявляют её проблемы на более ранних этапах, что значительно снижает стоимость перепроектирования.
1818

19-
Прежде всего *TypeScript* предназначен для выявления ошибок на этапе компиляции, а не на этапе выполнения. Кроме того, за счет системы типов, разработчики получают такие возможности, как подсказки и переходы по коду, которые значительно ускоряют процесс разработки. Помимо этого, система типов, в значительной степени, избавляет разработчиков от комментирования. Отпадает потребность в комментировании происхождения кода, которая в отличии от предназначения кода, занимает большую часть времени. Также при уделении малого внимания архитектуре, система типов накладывает ограничения, которые выявляют её проблемы на более ранних этапах, что значительно снижает стоимость перепроектирования.
20-
21-
Если при создании нового проекта планируется использовать *JavaScript* код оставшийся от предыдущих проектов, то это не составит никакой проблемы. Компилятор TypeScript отлично справляется с динамическим *JavaScript* кодом включенным в свою типизированную среду и даже выявляет в нем ошибки. Кроме того, при компиляции *.ts* файлов в *.js*, дополнительно генерируются файлы декларации *.d.ts*, с помощью которых, разработчики, которые пишут свои программы исключительно на *JavaScript*, будут иметь полноценный автокомплит.
19+
Если при создании нового проекта планируется использовать _JavaScript_ код оставшийся от предыдущих проектов, то это не составит никакой проблемы. Компилятор TypeScript отлично справляется с динамическим _JavaScript_ кодом включенным в свою типизированную среду и даже выявляет в нем ошибки. Кроме того, при компиляции _.ts_ файлов в _.js_, дополнительно генерируются файлы декларации _.d.ts_, с помощью которых, разработчики, которые пишут свои программы исключительно на _JavaScript_, будут иметь полноценный автокомплит.
2220

2321
## Зачем разработчику TypeScript
2422

23+
Опытным разработчикам _TypeScript_ значительно сокращает время на устранение ошибок и выявление багов, которые, порой, не так просто отыскать в динамической среде _JavaScript_. Кроме того сокращается объем комментариев на которые тоже уходит немало времени.
2524

26-
Опытным разработчикам *TypeScript* значительно сокращает время на устранение ошибок и выявление багов, которые, порой, не так просто отыскать в динамической среде *JavaScript*. Кроме того сокращается объем комментариев на которые тоже уходит немало времени.
27-
28-
В случае, если для разработчика, *TypeScript* является первым типизированным языком, то они должны знать, что его изучение, значительно ускорит процесс их профессионального роста, так как типизированный мир откроет аспекты программирования, которые в динамических языках просто не очевидны.
25+
В случае, если для разработчика, _TypeScript_ является первым типизированным языком, то они должны знать, что его изучение, значительно ускорит процесс их профессионального роста, так как типизированный мир откроет аспекты программирования, которые в динамических языках просто не очевидны.
2926

30-
Помимо этого, *TypeScript* позволяет писать более понятный-читаемый код, который максимально описывает предметную область, за счет чего архитектура становится более выраженной, а разработка неявно увеличивает профессиональный уровень программиста.
27+
Помимо этого, _TypeScript_ позволяет писать более понятный-читаемый код, который максимально описывает предметную область, за счет чего архитектура становится более выраженной, а разработка неявно увеличивает профессиональный уровень программиста.
3128

3229
Всё это, в своей совокупности, сокращает время разработки программы, снижая её стоимость и предоставляя разработчикам возможность поскорее приступить к реализации нового, ещё более интересного, проекта.
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
# Вступление
2+
23
![Chapter Cover](./images/chapter-cover.png)
3-
## Экскурс в типизацию - Вступление
44

5+
## Экскурс в типизацию - Вступление
56

67
Тема типизации и всё то, что входит в её определение, является частой темой при обсуждении различных областей, связанных с разработкой программ.
78

@@ -11,23 +12,21 @@
1112

1213
Начинающему разработчику понимание типизации может помочь принять правильное решение, от которого будет зависеть вся его карьера. Ведь каждый язык программирования привносит в жизнь разработчика не только возможности, но и неповторимую идеологию.
1314

14-
Эта серия, посвященная типизации в языках программирования, рассчитана на тех, кто сомневается в познании данной области или вовсе с ней не знаком.
15-
16-
Совсем скоро Вы познакомитесь с такими понятиями, как -
17-
15+
Эта серия, посвященная типизации в языках программирования, рассчитана на тех, кто сомневается в познании данной области или вовсе с ней не знаком.
1816

19-
- Система Типов
20-
- Тип Данных
21-
- Типы значение
22-
- Ссылочные типы
23-
- Явные\Неявные Преобразования
24-
- Типизация
25-
- Типизированные\Нетипизированные Языки Программирования
26-
- Статическая\Динамическая Типизация
27-
- Сильная\Слабая Типизация
28-
- Явная\Неявная Типизация
29-
- Вывод типов
30-
- Совместимость Типов
17+
Совсем скоро Вы познакомитесь с такими понятиями, как -
3118

19+
- Система Типов
20+
- Тип Данных
21+
- Типы значение
22+
- Ссылочные типы
23+
- Явные\Неявные Преобразования
24+
- Типизация
25+
- Типизированные\Нетипизированные Языки Программирования
26+
- Статическая\Динамическая Типизация
27+
- Сильная\Слабая Типизация
28+
- Явная\Неявная Типизация
29+
- Вывод типов
30+
- Совместимость Типов
3231

33-
И перед тем как приступить к освещению указанных выше тем, хочу обратить внимание, что все примеры, которые нуждаются в коде, будут продемонстрированы с применением языка *TypeScript-псевдо*. Псевдо означает, что будут использоваться типы, которых в самом *TypeScript* не существует.
32+
И перед тем как приступить к освещению указанных выше тем, хочу обратить внимание, что все примеры, которые нуждаются в коде, будут продемонстрированы с применением языка _TypeScript-псевдо_. Псевдо означает, что будут использоваться типы, которых в самом _TypeScript_ не существует.

0 commit comments

Comments
 (0)