0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В этом уроке разберем rest- и spread-операторы.</p>
1
<p>В этом уроке разберем rest- и spread-операторы.</p>
2
<h2>Rest-оператор</h2>
2
<h2>Rest-оператор</h2>
3
<p>Rest-оператор позволяет создавать функции с переменным числом параметров, при этом сворачивать их в массив:</p>
3
<p>Rest-оператор позволяет создавать функции с переменным числом параметров, при этом сворачивать их в массив:</p>
4
<p>Этот массив является обычным параметром функции, поэтому ему задается тип в соответствии с ожидаемыми значениями внутри этого массива. Пример с двумя параметрами:</p>
4
<p>Этот массив является обычным параметром функции, поэтому ему задается тип в соответствии с ожидаемыми значениями внутри этого массива. Пример с двумя параметрами:</p>
5
<p>В этом смысле rest-оператор в TypeScript ничем не отличается от rest-оператора в JavaScript. А вот со spread-оператором есть одна особенность.</p>
5
<p>В этом смысле rest-оператор в TypeScript ничем не отличается от rest-оператора в JavaScript. А вот со spread-оператором есть одна особенность.</p>
6
<h2>Spread-оператор</h2>
6
<h2>Spread-оператор</h2>
7
<p>Spread-оператор в функциях - это как rest-оператор наоборот. Он позволяет раскладывать массив на отдельные параметры:</p>
7
<p>Spread-оператор в функциях - это как rest-оператор наоборот. Он позволяет раскладывать массив на отдельные параметры:</p>
8
<p>Если функция принимает на вход любое количество аргументов, как в примере выше, то такой код работает без проблем. Но если функция принимает на вход определенное число аргументов, то TypeScript выдаст ошибку компиляции:</p>
8
<p>Если функция принимает на вход любое количество аргументов, как в примере выше, то такой код работает без проблем. Но если функция принимает на вход определенное число аргументов, то TypeScript выдаст ошибку компиляции:</p>
9
<p>Массивы в JavaScript изменяемы, поэтому TypeScript не может полагаться на количество элементов в конкретный момент времени. Есть разные способы обойти это ограничение. Но в этой ситуации проще использовать Type Assertion - указание компилятору, что мы точно знаем о коде:</p>
9
<p>Массивы в JavaScript изменяемы, поэтому TypeScript не может полагаться на количество элементов в конкретный момент времени. Есть разные способы обойти это ограничение. Но в этой ситуации проще использовать Type Assertion - указание компилятору, что мы точно знаем о коде:</p>
10
<p>Подробнее о Type Assertion поговорим в модуле о типах. С его помощью мы явно указываем, что этот массив состоит из двух конкретных значений, которые не поменяются.</p>
10
<p>Подробнее о Type Assertion поговорим в модуле о типах. С его помощью мы явно указываем, что этот массив состоит из двух конкретных значений, которые не поменяются.</p>