Microsoft/TypeScript
Ver no GitHub[Regression] Failed to assign to a discriminated union class property when its type is inferred from constructor
Open
#60.394 aberto em 2 de nov. de 2024
BugDomain: check: Type InferenceHelp Wanted
Métricas do repositório
- Stars
- (48.455 stars)
- Métricas de merge de PR
- (Mesclagem média 6d 17h) (9 fundiu PRs em 30d)
Description
🔎 Search Terms
property infer constructor discriminated
🕗 Version & Regression Information
- This changed between versions 4.3.5 and 4.4.4 (also in latest)
⏯ Playground Link
💻 Code
type State = { type: 'running', speed: number } | { type: 'stopped' };
class Actor {
private state;
// ^? Actor.state: State
constructor() {
this.state = { type: 'stopped' } as State;
}
run(speed: number) {
this.state = { type: 'running', speed }
}
}
🙁 Actual behavior
Type 'string' is not assignable to type '"running" | "stopped"'.(2322)
🙂 Expected behavior
No error, as in 4.3.5.
Additional information about the issue
If the property's type is explicitly declared as private state: State the error is gone.