What this snippet does
Recursive unions allow accurate typing of complex dynamic data like arbitrary JSON objects.
Expected output
{ a: [ 1, { b: true } ] }Why practise typing this
Typing advanced generics code builds muscle memory for the symbols and indentation TypeScript uses most, which prose-based typing tests never cover. DevType measures your words per minute and accuracy on this snippet and tracks the individual characters you mistype, so later lessons can target them.
More TypeScript practice
- Array covariance in TypeScriptAdvanced Generics · advanced
- Function parameter contravarianceAdvanced Generics · advanced
- Unsafe array covariance allowing runtime errorsAdvanced Generics · advanced
- Defining a linked list node typeAdvanced Generics · advanced
- Infinite recursion in conditional typesAdvanced Generics · advanced
- Inferring only the first type argumentAdvanced Generics · advanced