Typescript编译api-检测内置';他喜欢数学
如何使用编译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
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;
也就是说,也许有一种更好的方式我并不熟悉