-
Notifications
You must be signed in to change notification settings - Fork 12.9k
Open
Labels
Needs InvestigationThis issue needs a team member to investigate its status.This issue needs a team member to investigate its status.
Description
🔎 Search Terms
class inference, optional class, broken inference
🕗 Version & Regression Information
This changed in PR #31116
However, this was the first time that there was even a distinction between a generic and non-generic class during inference to my knowledge. This likely means this has existed ever since the ability to infer a generic class has existed.
⏯ Playground Link
💻 Code
type AnyConstructor = new (...args: any[]) => object;
function RenderFlagsMixin<BaseClass extends AnyConstructor | undefined = undefined>(
Base?: BaseClass,
) {};
class Container<T> {}
// ^ Only happens when the class is generic.
RenderFlagsMixin(Container)
// ^ Argument of type 'typeof Container' is not assignable to parameter of type 'undefined'.
🙁 Actual behavior
BaseClass
is inferred as undefined
despite the call being the value Container
.
🙂 Expected behavior
BaseClass
should be inferred as typeof Container
.
Additional information about the issue
No response
Metadata
Metadata
Assignees
Labels
Needs InvestigationThis issue needs a team member to investigate its status.This issue needs a team member to investigate its status.