What this snippet does
Functions requiring more parameters cannot be assigned to types expecting fewer, as the extra parameter would be undefined at runtime.
Expected output
Compile Error: Type '(a: number, b: number) => void' is not assignable to type '(a: number) => void'.
Why practise typing this
Typing type compatibility 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
- Assigning an object with extra properties to a typeType Compatibility · intermediate
- Structural compatibility between two different classesType Compatibility · intermediate
- Missing required properties in structural typingType Compatibility · intermediate
- Assigning a function with fewer parametersType Compatibility · intermediate
- Using a single argument callback in a mapType Compatibility · intermediate
- Contravariance of function parametersType Compatibility · intermediate