HTML Diff
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>