Computed property invalid in type declaration emitted in d.ts file ยท Issue #60818 ยท microsoft/TypeScript (original) (raw)
๐ 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.