TypeScript编译器API获取导入的值/类型

f8rj6qna  于 2023-04-13  发布在  TypeScript
关注(0)|答案(1)|浏览(106)

下面是一个例子:

// file1
export const VIEWPORT_HEIGHT = 1080;

// file2
import { VIEWPORT_HEIGHT } from '../../constants/app';

在处理file 2时,我如何获取VIEWPORT_HEIGHT的值/类型?鉴于它是一个常量,它的类型将是1080,而不是number。我试图完成与VSCode相同的操作,当你悬停在导入上时,它会显示常量值:

在处理导入时,我可以分析以下AST:

ImportDeclaration > ImportClause > NamedImports > ImportSpecifier > Identifier

我可以访问webpack的ts-loader传递给getCustomTransformers的program,因此我可以通过执行以下操作访问类型检查器:

let checker = program.getTypeChecker();

但我无法访问值/类型。我错过了什么?

gcuhipw9

gcuhipw91#

这不是你想要的,但这应该是可行的:

export const VIEWPORT: {HEIGHT: number} = {HEIGHT: 1080};

然后使用它与:

export { VIEWPORT } from '../../constants/app';
console.log(VIEWPORT['HEIGHT']);

相关问题