HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>В этом уроке мы разберем специальный тип any, который добавлен в TypeScript.</p>
1 <p>В этом уроке мы разберем специальный тип any, который добавлен в TypeScript.</p>
2 <h2>Польза типа any</h2>
2 <h2>Польза типа any</h2>
3 <p>Тип any используется в двух случаях: когда проверка типов не нужна или когда TypeScript не может вывести тип данных автоматически:</p>
3 <p>Тип any используется в двух случаях: когда проверка типов не нужна или когда TypeScript не может вывести тип данных автоматически:</p>
4 <p>Тип any превращает TypeScript в JavaScript, потому что данные с таким типом перестают проверяться:</p>
4 <p>Тип any превращает TypeScript в JavaScript, потому что данные с таким типом перестают проверяться:</p>
5 <p>any полезен во многих случаях. Например, когда нужно перевести проект из JavaScript в TypeScript. В этом случае сначала все типы объявляются как any, а затем переписываются на нужные.</p>
5 <p>any полезен во многих случаях. Например, когда нужно перевести проект из JavaScript в TypeScript. В этом случае сначала все типы объявляются как any, а затем переписываются на нужные.</p>
6 <p>Также any используют для работы с библиотеками JavaScript из TypeScript кода, у которых нет описанных типов. В остальных случаях any нужно избегать, потому что теряется весь смысл использования языка TypeScript.</p>
6 <p>Также any используют для работы с библиотеками JavaScript из TypeScript кода, у которых нет описанных типов. В остальных случаях any нужно избегать, потому что теряется весь смысл использования языка TypeScript.</p>
7 <p>Рассмотрим первый случай подробнее.</p>
7 <p>Рассмотрим первый случай подробнее.</p>
8 <h2>Из JavaScript в TypeScript</h2>
8 <h2>Из JavaScript в TypeScript</h2>
9 <p>Возьмем для примера код, который считает количество повторений слов в предложении:</p>
9 <p>Возьмем для примера код, который считает количество повторений слов в предложении:</p>
10 <p>Компилятор TypeScript такой код не пропустит. Он укажет, что объект в константе initial не содержит ключей со строковым типом:</p>
10 <p>Компилятор TypeScript такой код не пропустит. Он укажет, что объект в константе initial не содержит ключей со строковым типом:</p>
11 <p>Так происходит, потому что структура объекта задает его тип во время определения. Также в процессе работы структура не может меняться. Но в коде выше изначально объект вообще пустой, а по мере работы он заполняется ключами динамически.</p>
11 <p>Так происходит, потому что структура объекта задает его тип во время определения. Также в процессе работы структура не может меняться. Но в коде выше изначально объект вообще пустой, а по мере работы он заполняется ключами динамически.</p>
12 <p>Правильно задавать тип в ситуации с динамическими ключами мы научимся позже. А пока сделаем код рабочим с помощью any. Для этого нужно определить объект с явным указанием типа:</p>
12 <p>Правильно задавать тип в ситуации с динамическими ключами мы научимся позже. А пока сделаем код рабочим с помощью any. Для этого нужно определить объект с явным указанием типа:</p>
13 <p>TypeScript больше не показывает ошибку компиляции, что с одной стороны хорошо. Но с другой - сама проверка допустимости действий над этим объектом отключена. Если в дальнейшем обратиться к несуществующему свойству в этом объекте, TypeScript не укажет на ошибку.</p>
13 <p>TypeScript больше не показывает ошибку компиляции, что с одной стороны хорошо. Но с другой - сама проверка допустимости действий над этим объектом отключена. Если в дальнейшем обратиться к несуществующему свойству в этом объекте, TypeScript не укажет на ошибку.</p>
14 <p>В этом уроке мы научились работать с типом any. Также мы узнали, для чего и в каких случаях он используется.</p>
14 <p>В этом уроке мы научились работать с типом any. Также мы узнали, для чего и в каких случаях он используется.</p>