Microsoft/TypeScript
Auf GitHub ansehen[Regression] Failed to assign to a discriminated union class property when its type is inferred from constructor
Open
#60.394 geöffnet am 2. Nov. 2024
BugDomain: check: Type InferenceHelp Wanted
Repository-Metriken
- Stars
- (48.455 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 6T 17h) (9 gemergte PRs in 30 T)
Beschreibung
🔎 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.