Typescript编译api-检测内置';他喜欢数学

Typescript编译api-检测内置';他喜欢数学,typescript,typescript-compiler-api,Typescript,Typescript Compiler Api,如何使用编译API检测内置(如数学、控制台等)?如果您有标识符(例如带有文本Math的标识符),您可以通过TypeChecker#getSymbolAtLocation(node)获取其符号。一旦你有了符号,你可以跟随它回到它的声明,这将允许你获得声明存在的源文件。获得源文件后,可以检查它是否来自TypeScript包的lib文件夹。lib文件夹包含所有“内置”类型的所有声明 例如: const symbol = checker.getSymbolAtLocation(ident); const

如何使用编译API检测内置(如数学、控制台等)?

如果您有标识符(例如带有文本
Math
的标识符),您可以通过
TypeChecker#getSymbolAtLocation(node)
获取其符号。一旦你有了符号,你可以跟随它回到它的声明,这将允许你获得声明存在的源文件。获得源文件后,可以检查它是否来自TypeScript包的
lib
文件夹。
lib
文件夹包含所有“内置”类型的所有声明

例如:

const symbol = checker.getSymbolAtLocation(ident);
const isInLibFiles = symbol?.getDeclarations()
    ?.some(s => s.getSourceFile().fileName.includes("/node_modules/typescript/lib/"))
    ?? false;
也就是说,也许有一种更好的方式我并不熟悉