microsoft / microsoft/TypeScript
Double error message when referencing variable of type union of string literals from ambient declaration
未关闭
还没有人认领这个 Issue。
Domain: Error Messages
Help Wanted
Possible Improvement
- 主要语言
- Go
- 星标
- 111k
- 派生
- 14.3k
- 平均合并
- 2 天 4 小时
- 30 天内合并 PR
- 132
描述
🔎 Search Terms
double error, same message twice, ambient declaration, string literal union
🕗 Version & Regression Information
This changed between versions 3.9.7 and 4.0.5
⏯ Playground Link
💻 Code
declare const x: "a" | "b"
const y: number = x
// ~
// Type 'string' is not assignable to type 'number'.
// Type 'string' is not assignable to type 'number'. (2322)
🙁 Actual behavior
You see same error message twice
🙂 Expected behavior
The error message should be the one in 3.9.7 ie...
Type '"a" | "b"' is not assignable to type 'number'.
Type '"a"' is not assignable to type 'number'. (2322)
Or the following message just once also works...
Type 'string' is not assignable to type 'number'. (2322)
Additional information about the issue
No response
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从提供的 TypeScript Playground 复现开始,并将其诊断结果与 3.9.7 和 4.0.5 中所述的行为进行比较。跟踪编译器在将 ambient string-literal union 赋值给 number 时的类型检查诊断路径;当重复消息被移除且诊断结果符合预期形式之一时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- typescript
- 领域
- compilers
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 45/100