Sobes.tech
Назад к задачам
Junior — Senior
32

Реализация объединения кортежей в TypeScript

Компании, где спрашивали:

СБЕРСБЕР
Получайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Условие задачи

Необходимо создать тип Concat, который принимает два кортежа и возвращает новый кортеж, содержащий элементы первого кортежа, за которыми следуют элементы второго.

/* _____________ Your Code Here _____________ */

type Concat<T, U> = any

/* _____________ Test Cases _____________ */
import type { Equal, Expect } from '@type-challenges/utils'

const tuple = [1] as const

type cases = [
  Expect<Equal<Concat<[], []>, []>>,
  Expect<Equal<Concat<[], [1]>, [1]>>,
  Expect<Equal<Concat<typeof tuple, typeof tuple>, [1, 1]>>,
  Expect<Equal<Concat<[1, 2], [3, 4]>, [1, 2, 3, 4]>>,
  Expect<Equal<Concat<['1', 2, '3'], [false, boolean, '6']>, ['1', 2, '3', false, boolean, '6']>>,
]

// @ts-expect-error
type error = Concat<null, undefined>