Microsoft/TypeScript
在 GitHub 查看[Regression] Failed to assign to a discriminated union class property when its type is inferred from constructor
Open
#60,394 创建于 2024年11月2日
BugDomain: check: Type InferenceHelp Wanted
仓库指标
- Star
- (48,455 star)
- PR 合并指标
- (平均合并 6天 17小时) (30 天内合并 9 个 PR)
描述
🔎 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.