fix: repalce imgur with s3 for russian guide without conflict (#36055)
* fix: imgur to s3 for russian guide without conflict (cherry picked from commit ac90750e36b0dd1fe508c69a2277b75be48e4b95) * fix: remove extra links Co-Authored-By: Randell Dawson <5313213+RandellDawson@users.noreply.github.com> * fix: revert unrelated changes * fix: revert changes
This commit is contained in:
committed by
Parth Parth
parent
c37cb92e63
commit
21bd031a52
@ -33,7 +33,7 @@ GCD 42, 120, 285 = 3 _(3 - наибольшее число, которое де
|
||||
|
||||
Вы лучше поймете этот алгоритм, увидев его в действии. Предполагая, что вы хотите вычислить GCD 1220 и 516, давайте применим Евклидовой алгоритм-
|
||||
|
||||
Предполагая, что вы хотите вычислить GCD 1220 и 516, давайте применим Евклидовой алгоритм- 
|
||||
Предполагая, что вы хотите вычислить GCD 1220 и 516, давайте применим Евклидовой алгоритм- 
|
||||
|
||||
Псевдокод алгоритма-
|
||||
Шаг 1: **Пусть `a, b` - два числа**
|
||||
|
@ -49,12 +49,12 @@ localeTitle: Жадные алгоритмы
|
||||
|
||||
1. **Самое раннее время начала Сначала** выберите интервал, который имеет самое раннее время начала. Взгляните на следующий пример, который нарушает это решение. Это решение не получилось, потому что может быть интервал, который начинается очень рано, но очень длинный. Это означает, что следующая стратегия, которую мы могли бы попробовать, будет заключаться в том, чтобы сначала посмотреть на меньшие интервалы. 
|
||||
|
||||
2. **Наименьший интервал Первый,** т. Е. Вы в конечном итоге выбираете лекции в порядке их общего интервала, который является ничем иным, как их `finish time - start time` . Опять же, это решение неверно. Посмотрите на следующий случай. 
|
||||
2. **Наименьший интервал Первый,** т. Е. Вы в конечном итоге выбираете лекции в порядке их общего интервала, который является ничем иным, как их `finish time - start time` . Опять же, это решение неверно. Посмотрите на следующий случай. 
|
||||
|
||||
|
||||
Вы можете отчетливо видеть, что кратчайшая лекция - это посередине, но здесь это не оптимальное решение. Давайте посмотрим на еще одно решение этой проблемы, получающее информацию из этого решения.
|
||||
|
||||
3. **Наименее конфликтный интервал Сначала** вы должны смотреть на интервалы, которые вызывают наименьшее количество конфликтов. Еще раз у нас есть пример, когда этот подход не находит оптимального решения. 
|
||||
3. **Наименее конфликтный интервал Сначала** вы должны смотреть на интервалы, которые вызывают наименьшее количество конфликтов. Еще раз у нас есть пример, когда этот подход не находит оптимального решения. 
|
||||
|
||||
Диаграмма показывает нам, что наименьший интервал согласования - это один посередине с двумя конфликтами. После этого мы можем выбрать только два интервала в самом конце с конфликтами 3 каждый. Но оптимальным решением является выбор 4 интервалов на самом верхнем уровне.
|
||||
|
||||
|
@ -23,7 +23,7 @@ localeTitle: Создание горизонтальной линии с исп
|
||||
|
||||
Какой бы формат вы ни выбрали, он создаст горизонтальную линию, как в [этом уроке](https://learn.freecodecamp.org/responsive-web-design/applied-visual-design/create-a-horizontal-line-using-the-hr-element/) на [freeCodeCamp](https://www.freecodecamp.org/) . Вот скриншот из этого урока, показывающий элемент `hr` содержащийся в div.
|
||||
|
||||

|
||||

|
||||
|
||||
## Ресурсы:
|
||||
|
||||
|
@ -12,7 +12,7 @@ localeTitle: Динамическое программирование
|
||||
|
||||
Это дерево, чтобы найти F (5):
|
||||
|
||||

|
||||

|
||||
|
||||
Для вычисления F (5) потребуется вычислить много раз одно и то же F (i). Использование рекурсии:
|
||||
|
||||
|
@ -20,7 +20,7 @@ C ++ содержит обширную библиотеку, которая по
|
||||
|
||||
#### Использование и IDE, такие как CodeBlocks
|
||||
|
||||
Это так же просто, как нажать кнопки сборки и запуска, они создадут файл в папке проекта. 
|
||||
Это так же просто, как нажать кнопки сборки и запуска, они создадут файл в папке проекта. 
|
||||
|
||||
#### Использование командной строки
|
||||
|
||||
|
@ -4,7 +4,7 @@ localeTitle: Списки C ++
|
||||
---
|
||||
# Что такое список STL?
|
||||
|
||||
Списки на C ++ - это мощный инструмент, похожий на его более известный кузен, C ++ Vectors. Векторы представляют собой последовательный контейнер где элементы индексируются в непрерывной цепочке, списки также являются последовательным контейнером, но они организованы по-разному. Элементы списка указывают на его следующий элемент, поэтому все элементы упорядочиваются последовательно, но они не используют индексацию. Как? Вы можете спросить. Они делают это не путем индексации, а с помощью специального инструмента, называемого итераторами. Итераторы похожи на специальные указатели чья задача состоит в том, чтобы поддерживать порядок элементов списка, как связь между двумя вагонами. Вот хороший визуальный как списки организованы по сравнению с векторами и массивами. 
|
||||
Списки на C ++ - это мощный инструмент, похожий на его более известный кузен, C ++ Vectors. Векторы представляют собой последовательный контейнер где элементы индексируются в непрерывной цепочке, списки также являются последовательным контейнером, но они организованы по-разному. Элементы списка указывают на его следующий элемент, поэтому все элементы упорядочиваются последовательно, но они не используют индексацию. Как? Вы можете спросить. Они делают это не путем индексации, а с помощью специального инструмента, называемого итераторами. Итераторы похожи на специальные указатели чья задача состоит в том, чтобы поддерживать порядок элементов списка, как связь между двумя вагонами. Вот хороший визуальный как списки организованы по сравнению с векторами и массивами. 
|
||||
|
||||
## Как объявить список
|
||||
|
||||
|
@ -6,7 +6,7 @@ localeTitle: Препроцессоры
|
||||
|
||||
Как видно из названия, препроцессоры - это программы, которые обрабатывают наш исходный код перед компиляцией. Существует несколько шагов, связанных с написанием программы и выполнением программы на C / C ++. Давайте посмотрим на эти шаги, прежде чем мы начнем узнавать о препроцессорах.
|
||||
|
||||

|
||||

|
||||
|
||||
Вы можете увидеть промежуточные шаги на приведенной выше диаграмме. Исходный код, написанный программистами, хранится в файле program.c. Затем этот файл обрабатывается препроцессорами, а файл расширенного исходного кода создается с именем program. Этот расширенный файл компилируется компилятором и создается файл объектного кода с именем program.obj. Наконец, компоновщик связывает этот файл объектного кода с объектным кодом библиотечных функций для генерации исполняемого файла program.exe.
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
---
|
||||
title: Tokens Part 1
|
||||
localeTitle: Токены Часть 1
|
||||
---
|
||||
---
|
||||
title: Tokens Part 1
|
||||
localeTitle: Токены Часть 1
|
||||
---
|
||||
### Что такое токены?
|
||||
|
||||
Токены - это наименьшие единицы программы, которые важны для компилятора. Существуют различные виды токенов:
|
||||
|
||||
@ -21,8 +22,8 @@ localeTitle: Токены Часть 1
|
||||
### Что такое переменные?
|
||||
|
||||
* Определение учебника: переменные называются ячейками памяти, данные которых могут быть изменены.
|
||||
* Определение учебника: переменные называются ячейками памяти, данные которых могут быть изменены.
|
||||
|
||||
|
||||
* Но я хотел бы, чтобы вы подумали, что переменная будет чем-то вроде коробки, что-то вроде этого: 
|
||||
|
||||
|
||||
Так, например: Я перехожу на новое место, и мне нужно укладывать вещи в коробки. Таким образом, мне приходят две вещи. **Какие вещи будут храниться в ящике, так что размер с поля известен (тип данных)** и **как я могу определить поле? (Именование переменной)**
|
||||
@ -177,7 +178,7 @@ int 9a;
|
||||
|
||||
Итак, с точки зрения ящиков, вы можете представить это как -
|
||||
|
||||
|
||||

|
||||
|
||||
\`\` \`Каст #включают использование пространства имен std; int main () { int a; cout << "Значение мусора в a:" << a << endl; // объявляем переменную с именем 'a' типа integer а = 5; // инициализация переменной. cout << "Новое значение в" << a << endl;
|
||||
|
||||
@ -205,4 +206,4 @@ _Токены часть 1 закончена. Увидимся в палатк
|
||||
|
||||
**Счастливое кодирование! :)**
|
||||
|
||||
|
||||
**Не стесняйтесь задавать любые вопросы на странице GitHub [FreeCodeCamp](https://forum.freecodecamp.org/) или [форуме FreeCodeCamp.](https://forum.freecodecamp.org/)**
|
||||
|
@ -24,7 +24,7 @@ background: linear-gradient(direction, color-stop1, color-stop2, ...);
|
||||
|
||||
##### Линейный градиент - сверху вниз (по умолчанию)
|
||||
|
||||
В следующем примере показан линейный градиент, который начинается сверху. Он начинает красный, переход на желтый: 
|
||||
В следующем примере показан линейный градиент, который начинается сверху. Он начинает красный, переход на желтый: 
|
||||
|
||||
#### пример
|
||||
```
|
||||
@ -55,11 +55,11 @@ background: linear-gradient(direction, color-stop1, color-stop2, ...);
|
||||
</html>
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
##### Линейный градиент - слева направо
|
||||
|
||||
В следующем примере показан линейный градиент, начинающийся слева. Он начинает красный, переход на желтый: 
|
||||
В следующем примере показан линейный градиент, начинающийся слева. Он начинает красный, переход на желтый: 
|
||||
|
||||
#### пример
|
||||
```
|
||||
@ -90,7 +90,7 @@ background: linear-gradient(direction, color-stop1, color-stop2, ...);
|
||||
</html>
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
#### Линейный градиент - диагональ
|
||||
|
||||
@ -98,7 +98,7 @@ background: linear-gradient(direction, color-stop1, color-stop2, ...);
|
||||
|
||||
В следующем примере показан линейный градиент, который начинается в левом верхнем углу (и идет вправо справа). Он начинает красный, переход на желтый:
|
||||
|
||||

|
||||

|
||||
|
||||
#### пример
|
||||
```
|
||||
@ -129,7 +129,7 @@ background: linear-gradient(direction, color-stop1, color-stop2, ...);
|
||||
</html>
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
#### Дополнительная информация:
|
||||
|
||||
|
@ -8,11 +8,11 @@ localeTitle: Flex-расти
|
||||
|
||||
Он превратит ваш контейнер из этого
|
||||
|
||||

|
||||

|
||||
|
||||
# **к этому**
|
||||
|
||||

|
||||

|
||||
|
||||
Что сейчас произошло?
|
||||
|
||||
@ -49,7 +49,7 @@ body {
|
||||
|
||||
Сначала давайте создадим два абзаца и включим отображение: flex;
|
||||
|
||||

|
||||

|
||||
|
||||
Обратите внимание на несколько вещей
|
||||
|
||||
@ -60,7 +60,7 @@ body {
|
||||
|
||||
Чтобы увидеть это в действии, давайте первый класс класса «десять» и свойство flex-grow 1. Давайте также дадим второй класс «двадцать» и свойство flex-grow 2.
|
||||
|
||||

|
||||

|
||||
|
||||
Обратите внимание на несколько вещей
|
||||
|
||||
@ -69,6 +69,6 @@ body {
|
||||
|
||||
По мере изменения размера экрана мы также обнаруживаем, что первая сжимается в два раза быстрее второй.
|
||||
|
||||

|
||||

|
||||
|
||||
#### Дополнительная информация:
|
@ -11,7 +11,7 @@ localeTitle: Исходная позиция
|
||||
```css
|
||||
/* setting background-image of HTML doc */
|
||||
body {
|
||||
background-image: url('https://i.imgur.com/6Z2VStD.png');
|
||||
background-image: url('https://cdn-media-1.freecodecamp.org/imgr/6Z2VStD.png');
|
||||
background-repeat: no-repeat;
|
||||
background-position: right top;
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ localeTitle: Использование анимации CSS
|
||||
}
|
||||
```
|
||||
|
||||

|
||||

|
||||
|
||||
#### Дополнительная информация:
|
||||
|
||||
|
@ -6,7 +6,7 @@ localeTitle: Разница между Git и GitHub
|
||||
|
||||
Git и GitHub - две разные вещи. [Git](https://git-scm.com/) - это [система контроля версий](https://en.wikipedia.org/wiki/Version_control) , а [GitHub](https://github.com/) - это сервис для размещения репозиториев Git и помогает людям сотрудничать в написании программного обеспечения. Однако их часто путают из-за их схожего имени, из-за того, что GitHub строит поверх Git и потому, что многие веб-сайты и статьи не делают разницы между ними достаточно ясными.
|
||||
|
||||

|
||||

|
||||
|
||||
### Гит
|
||||
|
||||
|
@ -8,7 +8,7 @@ localeTitle: Макеты
|
||||
|
||||
Почти каждую веб-страницу, которую мы видим, можно разделить на поля, которые можно упорядочить в определенном порядке для создания этой веб-страницы. Ниже приведен один из примеров.
|
||||
|
||||

|
||||

|
||||
|
||||
> Веб-сайты часто отображают контент в нескольких столбцах (например, в журнале или в газете).
|
||||
|
||||
|
@ -14,7 +14,7 @@ Java предоставляет 4 уровня модификаторов дос
|
||||
|
||||
#### Модификаторы доступа Таблица Ссылка:
|
||||
|
||||

|
||||

|
||||
|
||||
#### Модификатор частного доступа
|
||||
|
||||
|
@ -14,7 +14,7 @@ Gulon Scene Builder - это приложение, используемое дл
|
||||
|
||||
#### Screeenshots:
|
||||
|
||||

|
||||

|
||||
|
||||
### FXML
|
||||
|
||||
|
@ -33,7 +33,7 @@ function multiply(x,y) {
|
||||
|
||||
Теперь мы знаем, что Javascript может выполнять одну вещь одновременно, но это не так с браузером. У браузера есть собственный набор API, таких как setTimeout, XMLHttpRequests, которые не указаны в среде выполнения Javascript. На самом деле, если вы посмотрите исходный код V8, популярную среду исполнения Javascript, которая поддерживает браузеры, такие как Google Chrome, вы не найдете никаких определений. Это связано с тем, что эти специальные веб-API существуют в среде браузера, а не в среде javascript, и вы можете сказать, что эти apis вводят параллелизм в микс. Давайте посмотрим на диаграмму, чтобы понять всю картину.
|
||||
|
||||

|
||||

|
||||
|
||||
Введены еще несколько терминов
|
||||
|
||||
|
@ -14,15 +14,15 @@ localeTitle: Как создать раскрывающееся меню с CSS
|
||||
|
||||
Начальный экран:
|
||||
|
||||

|
||||

|
||||
|
||||
Откроется окно:
|
||||
|
||||

|
||||

|
||||
|
||||
Выпадающее меню с выбранной опцией:
|
||||
|
||||

|
||||

|
||||
|
||||
#### HTML:
|
||||
|
||||
|
@ -10,11 +10,11 @@ localeTitle: Проблема Монти Холла
|
||||
|
||||
Оказывается, выбор имеет значение, и на самом деле вам в свою очередь нужно переключить свое решение на дверь 3! Вот почему. Когда вы выбрали Дверь 1 из 3 закрытых дверей, у вас был шанс 1 из 3, что вы выбрали правильный. У обеих дверей 2 и двери 3 также есть 1 из 3 шансов иметь автомобиль за ним. Вы также можете сказать, что у дверей 2 и 3 есть 2 из 3 шансов иметь автомобиль за ним _вместе взятый_ .
|
||||
|
||||

|
||||

|
||||
|
||||
Теперь, когда хост открывает Дверь 2 и содержит козу, теперь у вас больше информации о проблеме. Помните, что двери 2 и 3 имеют комбинированную вероятность, содержащую автомобиль 2 / 3rds того времени. С открытием двери вы знаете, что у двери 2 нет автомобиля. Но это выявление не изменяет объединенной вероятности двух дверей. Это ключевой вынос здесь! Поскольку мы теперь знаем, что у двери 2 есть 0/3 шанс показать автомобиль, теперь вы можете сказать, что у двери 3 есть шанс 2 / 3rds содержать автомобиль. Сочетание вероятностей двери 2 и двери 3 все еще добавляет до 2 / 3rds, как это было до открытия двери 2. Дверь 1 остается неизменной и имеет только 1/3-й шанс. Таким образом, если вы решите переключиться, вы переходите от примерно 33.33% к 66.67% от выбора автомобиля. Другими словами, вы удваиваете свои шансы на успех, переключаясь!
|
||||
|
||||

|
||||

|
||||
|
||||
Да, возможно, что у двери 1 была машина, и Монти обманул тебя. Это не имеет значения. Вы играете в азартные игры, беря сделку, но вы играете в азартные игры. Вы принимаете самое лучшее решение с информацией, которую вы даете, и пусть бросок кости. В конечном счете вы выполняете лучшее переключение, чем участник, который решает сохранить свой первый выбор. В конце концов, Монти действительно обманывает себя, предлагая вам лучшее дело.
|
||||
|
||||
|
@ -6,13 +6,13 @@ localeTitle: Машина опорных векторов
|
||||
|
||||
Поддержка векторной машины (SVM) является дискриминационным классификатором, формально определяемым разделительной гиперплоскостью. Другими словами, с учетом помеченных данных обучения (контролируемое обучение) алгоритм выводит оптимальную гиперплоскость, которая классифицирует новые примеры. Он делает это, сводя к минимуму разницу между точками данных вблизи гиперплоскости.
|
||||
|
||||

|
||||

|
||||
|
||||
Функция стоимости SVM стремится аппроксимировать логистическую функцию кусочно-линейной. Этот алгоритм ML используется для задач классификации и является частью поднабора контролируемых алгоритмов обучения.
|
||||
|
||||
### Функция затрат
|
||||
|
||||

|
||||

|
||||
|
||||
Функция затрат используется для обучения SVM. Минимизируя значение J (theta), мы можем гарантировать, что SVM является настолько точным, насколько это возможно. В уравнении функции cost1 и cost0 относятся к стоимости для примера, где y = 1, и стоимости для примера, где y = 0. Стоимость для SVM определяется функциями ядра (подобия).
|
||||
|
||||
|
@ -32,29 +32,29 @@ localeTitle: Биномиальное распределение
|
||||
|
||||
Рассмотрим `P(Single Scenario)` в общем случае `k` успехов и `n - k` отказов в `n` испытаниях. Чтобы найти значение, используйте правило умножения для независимых событий:
|
||||
|
||||

|
||||

|
||||
|
||||
Количество способов получить `k` успехов из `n` проб может быть записано как **n выбрать k** :
|
||||
|
||||

|
||||

|
||||
|
||||
Таким образом, общая формула для получения вероятности наблюдения точно `k` успехов в `n` независимых испытаниях дает:
|
||||
|
||||

|
||||

|
||||
|
||||
Следовательно, вероятность получения ровно одной главы в испытаниях:
|
||||
|
||||

|
||||

|
||||
|
||||
### Среднее и разное
|
||||
|
||||
Среднее биномиальное распределение с `n` исследованиями, где `p` - вероятность успеха, определяется:
|
||||
|
||||

|
||||

|
||||
|
||||
и дисперсия:
|
||||
|
||||

|
||||

|
||||
|
||||
#### Дополнительная информация:
|
||||
|
||||
|
@ -8,4 +8,4 @@ localeTitle: Создание и загрузка и подключение ан
|
||||
* Обрезать, изменять размер и оптимизировать столько раз, сколько требуется.
|
||||
4. Загрузите анимированный GIF.
|
||||
5. Загрузить изображение на [imgur.com](http://imgur.com) .
|
||||
6. Ссылка на изображение с использованием `` .
|
||||
6. Ссылка на изображение с использованием `` .
|
||||
|
@ -69,7 +69,7 @@ node\_modules
|
||||
|
||||
[stackoverflow.com](http://stackoverflow.com/questions/35356692/best-practice-when-using-an-api-key-in-node-js)
|
||||
|
||||
[! \[Drake Main](https://i.stack.imgur.com/jRaTj.jpg?s=128&g=1) \] (http://stackoverflow.com/users/4956243/drake-main) #### [Лучшая практика при использовании ключа API в Node.js](http://stackoverflow.com/questions/35356692/best-practice-when-using-an-api-key-in-node-js)
|
||||
[! \[Drake Main](https://cdn-media-1.freecodecamp.org/imgr/jRaTj.jpg) \] (http://stackoverflow.com/users/4956243/drake-main) #### [Лучшая практика при использовании ключа API в Node.js](http://stackoverflow.com/questions/35356692/best-practice-when-using-an-api-key-in-node-js)
|
||||
|
||||
\*\* node.js, api-key \*\*
|
||||
|
||||
|
@ -16,7 +16,7 @@ localeTitle: Что такое спринт
|
||||
|
||||
Кроме того, в некоторых организациях разработчики ежедневно будут встречаться, чтобы обсудить ход проекта, потребности и блокпосты. Эти встречи иногда называют совещанием SCRUM или ежедневным стендом. Лица или лиц иногда приглашают на прослушивание, однако они присутствуют только в качестве наблюдателей.
|
||||
|
||||

|
||||

|
||||
|
||||
Вышеприведенное является примером плана спринта, который был выложен в течение шести 30-дневных спринтов. Вы можете видеть, что есть Sprint Dev в каждом из шести спринтов, но из Sprint 2 есть что-то, помеченное как **Sprint # Increment** .
|
||||
|
||||
|
@ -23,7 +23,7 @@ AJAX использует встроенный **объект XMLHttpRequest б
|
||||
|
||||
**HTML DOM** : при загрузке веб-страницы браузер создает объектную модель документа на странице.
|
||||
|
||||

|
||||

|
||||
|
||||
**Создайте объект XMLHttpRequest:**
|
||||
|
||||
|
@ -49,7 +49,7 @@ Atom - это редактор с [открытым исходным кодом]
|
||||
|
||||
[Доступно](http://stackoverflow.com/search?q=atom) онлайн.
|
||||
|
||||
## [Код Visual Studio](https://code.visualstudio.com/) 
|
||||
## [Код Visual Studio](https://code.visualstudio.com/) 
|
||||
|
||||

|
||||
|
||||
|
@ -6,7 +6,7 @@ localeTitle: Машинопись
|
||||
|
||||
### обзор
|
||||
|
||||

|
||||

|
||||
|
||||
Так что, как вы, скорее всего, знаете, JavaScript расширяет свой след каждый день, и это одновременно и потрясающее, и потрясающее, что вы можете делать с языком в наши дни.
|
||||
|
||||
@ -16,7 +16,7 @@ localeTitle: Машинопись
|
||||
|
||||
Вы можете узнать больше о различиях синтаксиса в [`TypeScript`](./) > [`JavaScript vs TypeScript`](./javascript-vs-typescript) .
|
||||
|
||||

|
||||

|
||||
|
||||
По сути, TypeScript пытается помочь JavaScript достичь новых высот и стать очень масштабируемым и может выделяться следующими функциями:
|
||||
|
||||
@ -41,7 +41,7 @@ localeTitle: Машинопись
|
||||
|
||||
### Детская площадка
|
||||
|
||||

|
||||

|
||||
|
||||
Если вы хотите попробовать TypeScript без его установки, посетите [Playground](http://www.typescriptlang.org/play/index.html) .
|
||||
|
||||
|
@ -4,7 +4,7 @@ localeTitle: Монтаж
|
||||
---
|
||||
## Монтаж
|
||||
|
||||

|
||||

|
||||
|
||||
Чтобы начать работу, вам потребуются два компилятора TypeScript и редактор, который поддерживает TypeScript.
|
||||
|
||||
@ -47,7 +47,7 @@ touch tsconfig.json
|
||||
|
||||
### Быстрый пример
|
||||
|
||||

|
||||

|
||||
|
||||
На скриншоте выше вы можете увидеть два файла - `multiplication.js` и `multiplication.ts` .
|
||||
|
||||
|
@ -4,7 +4,7 @@ localeTitle: JavaScript vs TypeScript
|
||||
---
|
||||
## JavaScript vs TypeScript
|
||||
|
||||

|
||||

|
||||
|
||||
Итак, теперь, когда у нас есть общее представление о том, что такое TypeScript, давайте сыграем в быстрой игре **Where's Waldo** .
|
||||
|
||||
|
Reference in New Issue
Block a user