0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>Использование типа any в TypeScript отключает проверки типов, что не желательно. Также в наиболее строгом режиме с помощью "strict": true в tsconfig.json использование any невозможно. А это значительно повышает безопасность кода.</p>
1
<p>Использование типа any в TypeScript отключает проверки типов, что не желательно. Также в наиболее строгом режиме с помощью "strict": true в tsconfig.json использование any невозможно. А это значительно повышает безопасность кода.</p>
2
<p>При этом бывают ситуации, когда тип неизвестен, но работа с ним должна быть безопасна с точки зрения типов. Для этого в TypeScript существует дополнение к any - unknown, которое разберем в этом уроке.</p>
2
<p>При этом бывают ситуации, когда тип неизвестен, но работа с ним должна быть безопасна с точки зрения типов. Для этого в TypeScript существует дополнение к any - unknown, которое разберем в этом уроке.</p>
3
<h2>Использование типа unknown</h2>
3
<h2>Использование типа unknown</h2>
4
<p>Главное отличие unknown от any связано с проверкой типов. Тип unknown запрещает выполнять любые операции:</p>
4
<p>Главное отличие unknown от any связано с проверкой типов. Тип unknown запрещает выполнять любые операции:</p>
5
<p>Может показаться странным, что перед нами строка, но над ней нельзя выполнять строковые операции. К этому надо привыкнуть. Тип в статически типизированных языках определяется не тем, что мы видим своими глазами, а тем, как тип выводится - автоматически или через явное указание.</p>
5
<p>Может показаться странным, что перед нами строка, но над ней нельзя выполнять строковые операции. К этому надо привыкнуть. Тип в статически типизированных языках определяется не тем, что мы видим своими глазами, а тем, как тип выводится - автоматически или через явное указание.</p>
6
<p>Переменная unknown типа нужна редко - когда нужно дальше уточнить тип. Но все меняется, когда нам нужно создать функцию, которая может работать с любым входящим типом. В JavaScript распространена подобная практика:</p>
6
<p>Переменная unknown типа нужна редко - когда нужно дальше уточнить тип. Но все меняется, когда нам нужно создать функцию, которая может работать с любым входящим типом. В JavaScript распространена подобная практика:</p>
7
<p>Такую функцию можно реализовать с помощью any, но тогда мы отключим проверку типов:</p>
7
<p>Такую функцию можно реализовать с помощью any, но тогда мы отключим проверку типов:</p>
8
<p>Лучше использовать unknown, тогда TypeScript защитит от потенциальных ошибок типов:</p>
8
<p>Лучше использовать unknown, тогда TypeScript защитит от потенциальных ошибок типов:</p>
9
<p>Затем внутри тела можно выполнить нужную проверку, чтобы узнать, с чем мы работаем:</p>
9
<p>Затем внутри тела можно выполнить нужную проверку, чтобы узнать, с чем мы работаем:</p>
10
<p>В итоге instanceof работает только с конструкторами, поэтому в примере выше мы проверяем, является ли значение экземпляром класса Error.</p>
10
<p>В итоге instanceof работает только с конструкторами, поэтому в примере выше мы проверяем, является ли значение экземпляром класса Error.</p>