为什么标识符在TypeScript编译器中扩展声明?

为什么标识符在TypeScript编译器中扩展声明?,typescript,compiler-construction,Typescript,Compiler Construction,在TS编译器内部,标识符的AST节点类型扩展了声明: export interface Identifier extends PrimaryExpression, Declaration { ... } 为什么? 在公共API中的实际AST中,const x=3(整个范围)是一个变量声明,而x部分是类型标识符声明的名称属性。那么为什么Identifier本身就是一个声明呢

在TS编译器内部,标识符的AST节点类型扩展了声明:

export interface Identifier extends PrimaryExpression, Declaration {
    ...
}
为什么?

在公共API中的实际AST中,
const x=3
(整个范围)是一个
变量声明
,而
x
部分是类型
标识符
声明的
名称
属性。那么为什么
Identifier
本身就是一个声明呢