TypeScript

Unsafe array covariance allowing runtime errors in TypeScript

TypeScriptAdvanced GenericsCovariance & Contravarianceadvanced

What this snippet does

Because arrays are covariant, pushing a base type into an array of subtypes compiles, but causes a runtime error when subtype methods are called.

Expected output

TypeError: d.bark is not a function

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

Browse all TypeScript snippets →