typescript, ts-morph模块,是否有访问底层ts的权限.SourceFile的实例从一个' ts-mor



我正在尝试ts-morphnpm模块来取代我已经编写的一些代码,但这些代码与ts-morph重叠并且较差。然而,我有一些采用ts.Node类型参数的现有函数,主要用于探索和发现,我需要在尝试ts-morph时使用它们作为参考。

然而,我看不到从ts-morph.SourceFile实例访问底层ts.Node实例的方法-没有返回类型为ts.Nodets.TypeCheckerts-morph函数。

这行不通

(sourceFile as unknown) as ts.SourceFile,
(checker as unknown) as ts.TypeChecker,

因为,首先,(sourceFile as unknown) as ts.SourceFile没有kind成员。

是否有从ts-morph.SourceFile访问ts.Node实例的方法?

ts-morph提供了对它包装的所有底层编译器API对象的访问。

对于任何节点,您都可以使用compilerNode属性访问底层编译器节点:

sourceFile.compilerNode // ts.SourceFile

请注意,无论何时通过ts-morph操作源文件(例如,向源文件添加类,删除函数或其他类似的东西),底层编译器节点都将过时。

https://github.com/dsherret/ts-morph/blob/af35677f3b498ed0f8e87e4b6c92a7246cfab210/packages/ts-morph/lib/ts-morph.d.ts L3189

要获得TypeScript的TypeChecker,使用TypeCheckercompilerObject属性:

project.getTypeChecker().compilerObject // ts.TypeChecker

最新更新