Видеоуроки, интерактивный редактор и сохранение прогресса — бесплатно, сразу после входа.
ВойтиСоздать аккаунт — бесплатноЗакончили урок?
Войдите, чтобы отмечать прогресс
as const говорит компилятору: не расширяй это выражение. Для массива это значит две вещи: он становится кортежем фиксированной длины и только для чтения. Тип результата теперь readonly [A, B], для нашего вызова readonly [string, number].
Кортеж, который можно менять, легко сломать:
as const честно помечает результат как неизменяемый, и push на нём не скомпилируется. Поэтому в задании тип entry тоже с readonly: обычный [string, number] из readonly-кортежа не присвоить.
Внутри дженерика as const касается только структуры, потому что A и B уже выведены как string и number. На литералах он фиксирует ещё и сами значения:
Это пригодится в задании 18.
То же самое можно получить, указав тип результата:
Здесь кортеж будет изменяемым. Какой вариант выбирать, зависит от того, должен ли вызывающий код менять результат. Чаще всего не должен.