π Search Terms
unique symbol widening
π Version & Regression Information
- This is the behavior in every version I tried
β― Playground Link
Playground Link
π» Code
const u = Symbol();
const a7 = u as typeof u // widened to symbol
π Actual behavior
a7 is symbol
π Expected behavior
a7 has typeof u
Additional information about the issue
This issue is a huge problem for isolated declarations as it breaks the assumption that in an expression const o = a as T we can always use T as the type of o. This is also inconsistent with the way similar expressions work for string/number literal types (ex)
Similar issues:
@Andarist perhaps #54778 also fixes this?
π Search Terms
unique symbol widening
π Version & Regression Information
β― Playground Link
Playground Link
π» Code
π Actual behavior
a7issymbolπ Expected behavior
a7hastypeof uAdditional information about the issue
This issue is a huge problem for isolated declarations as it breaks the assumption that in an expression
const o = a as Twe can always useTas the type ofo. This is also inconsistent with the way similar expressions work for string/number literal types (ex)Similar issues:
unique symboltype lost after property is extracted from an objectΒ #43657 - Widening on return type not on variable declarationunique symbols from the globalSymbolConstructorwiden way too eagerlyΒ #53276@Andarist perhaps #54778 also fixes this?