如何以编程方式生成仅包含输入文件及其导入中使用的类型的TypeScript声明文件?

dhxwm5r4  于 2023-03-31  发布在  TypeScript
关注(0)|答案(2)|浏览(114)

我想使用ChatGPT来生成代码,但在大型代码库中工作时很难提供必要的上下文。我使用Typescript,我想找到一个工作流,可以在提示符中快速提供相关类型,以提供足够的上下文。

是否有编程方式生成一个Typescript声明文件,包含给定Typescript文件中使用的所有类型及其导入的模块?

  • 假设您正在一个现有项目中使用其他可能相关或不相关的文件。
  • 生成的文件应该使用树摇动来只包含相关类型以最小化上下文。
  • 它应该生成一个文件(在提示符中提供ChatGPT更容易),其中包括文件的类型和文件的依赖项,包括node_modules中的依赖项
igsr9ssn

igsr9ssn1#

你好像在找https://api-extractor.com/
它类似于Webpack,但用于类型定义
检查https://api-extractor.com/pages/overview/demo_rollup/处的输出示例

c0vxltue

c0vxltue2#

tsc MyFile.ts --declaration --emitDeclarationOnly --outFile out.d.ts
这将递归地扫描所有从MyFile.ts导入的文件,并将所有声明输出到out.d.ts
或者,您可以编辑tsconfig.json或创建一个新的,其中只有一个文件,如"files": [ "./main.ts" ]和使用命令
tsc -project tsconfig.alldts.json --declaration --emitDeclarationOnly --outFile all.d.ts
这种方法更好,因为特定的其他设置,而不需要每次都指定它们(例如,影响如何处理null/未定义类型的严格性设置)。
(This方法也可用于生成仅包含main.ts或应用的其他文件的.js文件。

相关问题