TypeScript

Failing to remove optionality at runtime in TypeScript

TypeScriptMapped TypesModifiers (+/-)intermediate

What this snippet does

Removing optionality via mapped types is a compile-time illusion; runtime undefined values still cause crashes if cast.

Expected output

TypeError: Cannot read properties of undefined (reading 'toUpperCase')

Why practise typing this

Typing mapped types 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

Browse all TypeScript snippets →