Во внутренних компонентах компилятора TS тип узла AST для Identifier
расширяется Declaration
:
export interface Identifier extends PrimaryExpression, Declaration {
...
}
Почему?
В фактическом AST в общедоступном API const x = 3
(весь диапазон) - это VariableDeclaration
, а часть x
- это свойство name
объявления типа Identifier
. Так почему же Identifier
сам по себе является объявлением в src / compiler / types.ts ?