Microsoft/TypeScript
在 GitHub 查看Computed property invalid in type declaration emitted in d.ts file
Open
#60,818 建立於 2024年12月19日
Domain: Declaration EmitHelp WantedPossible Improvement
倉庫指標
- Star
- (48,455 star)
- PR 合併指標
- (平均合併 6天 17小時) (30 天內合併 9 個 PR)
描述
🔎 Search Terms
computed property unique symbols declaration emit
🕗 Version & Regression Information
- This is the behavior in every version I tried
⏯ Playground Link
💻 Code
class T {
static readonly ["t"]: unique symbol;
}
let x: {
[T["t"]]: number;
};
let y = {
[T["t"]]: 1
}
🙁 Actual behavior
The type of x has an error saying: A computed property name in a type literal must refer to an expression whose type is a literal type or a 'unique symbol'
The type of y is emitted in declaration files just like the type of x and causes an error in the d.ts file
🙂 Expected behavior
The type of x should be valid. If we use a non-computed property name, the type would be valid (let x: { [T.t]: number; }, Playground Link). Declaration emit should not emit invalid code.
Additional information about the issue
Probably fixed by #60052 since the limitation on computed property names in types goes away.