Skip to main content
Journey Uncommon Logo
JourneyUncommon
hardTypeScriptrecursive depth limitsSingle-choice MCQ

The two type aliases below both count up using recursion. One resolves fine and one immediately errors with TS2589. Which statement correctly explains the difference?

type Good<N extends any[]> = N['length'] extends 50 ? N : Good<[any, ...N]>; // resolves type Bad<N extends any[]> = N['length'] extends 50 ? N : [any, ...Bad<[any, ...N]>]; // TS2589