Microsoft/TypeScript
Voir sur GitHub[Regression] Failed to assign to a discriminated union class property when its type is inferred from constructor
Open
#60 394 ouverte le 2 nov. 2024
BugDomain: check: Type InferenceHelp Wanted
Métriques du dépôt
- Stars
- (48 455 stars)
- Métriques de merge PR
- (Merge moyen 6j 17h) (9 PRs mergées en 30 j)
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.