Числа в типах
Вопрос
Как в системе типов TypeScript выполнить арифметику, например N + 1?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
Числа представляют длиной кортежа: строят кортеж из N элементов рекурсией, добавляют элемент и читают ['length']. Пример: type Inc<N extends number, T extends unknown[] = []> = T['length'] extends N ? [...T, 0]['length'] : Inc<N, [...T, 0]>. Глубина ограничена лимитом рекурсии.
Разбор
Числа представляют длиной кортежа: строят кортеж из N элементов рекурсией, добавляют элемент и читают ['length']. Пример: type Inc<N extends number, T extends unknown[] = []> = T['length'] extends N ? [...T, 0]['length'] : Inc<N, [...T, 0]>. Глубина ограничена лимитом рекурсии.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.