Open
Description
- expando on
export default
missing: declarationEmitDefaultExportWithStaticAssignment - expando on interface/const merge missing: declarationEmitExpandoWithGenericConstraint
- expando on overloaded function missing: declarationEmitFunctionDuplicateNamespace
- expando with keyword names: declarationEmitFunctionKeywordProp
- expando with element access expressions: declarationEmitLateBoundAssignments2
- starting to think expandos just don't work: declarationEmitLateBoundAssignments
Metadata
Metadata
Assignees
Type
Projects
Milestone
Relationships
Development
No branches or pull requests
Activity
[-]expando declarations don't show up on symbol[/-][+]binder: expando declarations don't show up on symbol[/+]sandersn commentedon Feb 19, 2025
This is correct, although it differs from Strada and we probably don't want it to differ in the long-term. In the following example,
Point
only has one declaration in Corsa and two in Strada, because Strada has assignment declarations and therefore treatsPoint
as a namespace declaration containingzero
.The missing feature is transforming
Point.zero
into a synthetic--JS-only--namespace declaration:where the binder will need to allow jsnamespace to merge with other values, and the checker will need to follow the synthetic
jsexport var
to anoriginal
initialiser() => 0
to type check it. Oh, and the language service will need to report the syntheticjsnamespace
'soriginal
location.