gpt4 book ai didi

typescript - 在 npm 项目中托管的环境 TypeScript 类型?

转载 作者:行者123 更新时间:2023-12-04 17:15:22 24 4
gpt4 key购买 nike

受 Jest 和其他一些工具的启发,我正在开发一个程序,该程序加载用 TypeScript 编写的小源文件,并在 Node.js 中的单独 VM 上下文中编译和运行它们。 (不,它不是 Jest 的竞争对手)。

类似于 Jest 对 describetest 所做的,该程序在运行脚本之前将某些预定义的全局变量“注入(inject)”到脚本中,因此脚本不需要显式导入这些符号。除了 VSCode 中可怕的“红色波浪形”之外,这工作得非常好。

问题是 VSCode 不知道注入(inject)的符号。现在,使用 Jest 的解决方案是将 @types/jest 安装到您的项目中,然后将 "types": ["jest"] 属性添加到项目的 tsconfig.json。但是,我真的不想只为环境类型维护一个单独的包,而且我不想打扰 DefinitelyTyped 人员来为我的小项目添加支持。

有没有一种方法可以配置我的项目,以便 VSCode(或者更确切地说是 TypeScript 语言服务)知道某些类型始终存在?我尝试过使用 tsconfig.json///reference、package.json 中的“types”等等,但我尝试过的似乎都不起作用.

明确地说,我所说的是两个独立的 npm 包之间的关系——一个提供类型定义的“提供”包和一个使用它们的“消费”包。因此,就像在 Jest 中一样,依赖于 Jest 的包可以有一个使用 Jest 符号的测试文件,而无需显式导入它们。

GitHub 存储库在这里,如果有人想看一看:https://github.com/viridia/overrun

最佳答案

我认为在这种情况下,您必须创建一个 global.d.ts 文件来键入您的全局变量。查看TS docs on globals .它不只是通过安装为您提供开箱即用的类型。但是,您可以告诉人们,如果他们想要 TS 支持,可以将 global.d.ts 文件复制粘贴到他们的项目中,这样就可以了。

关于typescript - 在 npm 项目中托管的环境 TypeScript 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68788263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com