Microsoft/TypeScript

Double error message when referencing variable of type union of string literals from ambient declaration

开放

#63,050 创建于 2026年1月25日

 (3 条评论) (0 个反应) (0 位负责人)TypeScript (13,395 个派生)batch import
Domain: Error MessagesHelp WantedPossible Improvement

仓库指标

星标
 (108,860 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

🔎 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

https://www.typescriptlang.org/play/?ts=5.9.3#code/CYUwxgNghgTiAEYD2A7AzgF3gDwFzwCIoD4AfQgIwIChrl0sBPfFAVwFsKQZ4BeHIA

💻 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

贡献者指南