Bug Report
🔎 Search Terms
inference string null function parameter
🕗 Version & Regression Information
- This changed between versions 4.9.5 and 5.0.4
⏯ Playground Link
Playground link with relevant code
💻 Code
enumThing{a='a',b='b',};functionf(registrationStatusOptions: SelectOptions<Thing>,onChange: (status: Thing|null)=>void,// <-- Remove the `| null` and the error goes away.): void{select({// <-- Add an explicit type argument `Thing` and the error goes away.options: registrationStatusOptions,onChange: onChange,// ERROR in v5.0.4 but not in v4.9.5: Type '(status: Thing | null) => void' is not assignable to type '(key: string) => void'.});}exportfunctionselect<KeyTextendsstring>(props: SelectProps<KeyT>): void{thrownewError('hello');}exporttypeSelectProps<KeyTextendsstring>={onChange: (key: KeyT)=>void;options?: SelectOptions<KeyT>;// <-- Remove the `?` and the error goes away.};exporttypeSelectOptions<KeyTextendsstring>=// Comment either of the below union members out and the error goes away.|Array<{key: KeyT}>|Array<KeyT>;🙁 Actual behavior
- Got a type error; see "ERROR" comment above. Looks like the type argument to
select(...) is being inferred incorrectly. - Minor perturbations of the code cause the error to go away; see other comments above.
This was extracted from some React UI code.
🙂 Expected behavior
TypeScript 4.9.5 infers the type argument I wanted. I was hoping TypeScript 5.0.4 would do the same.
Bug Report
🔎 Search Terms
inference string null function parameter
🕗 Version & Regression Information
⏯ Playground Link
Playground link with relevant code
💻 Code
🙁 Actual behavior
select(...)is being inferred incorrectly.This was extracted from some React UI code.
🙂 Expected behavior
TypeScript 4.9.5 infers the type argument I wanted. I was hoping TypeScript 5.0.4 would do the same.