【发布时间】:2019-02-07 14:20:20
【问题描述】:
我一直在为definitelyTyped 中的jquery.datatables 定义做出贡献。存储库中包含许多其他定义项目,其中一个或多个未通过测试运行程序似乎并不少见 (npm test)。像这样从存储库中干净提取失败是如何发生的,这超出了我的理解。有没有办法将测试运行器隔离到我的定义中?
【问题讨论】:
标签: typescript definitelytyped
我一直在为definitelyTyped 中的jquery.datatables 定义做出贡献。存储库中包含许多其他定义项目,其中一个或多个未通过测试运行程序似乎并不少见 (npm test)。像这样从存储库中干净提取失败是如何发生的,这超出了我的理解。有没有办法将测试运行器隔离到我的定义中?
【问题讨论】:
标签: typescript definitelytyped
除了wd39的回答,如果包中有tslint.json的文件,也可以运行npm run lint jquery.datatables来lint编译特定的包。
编辑现有包
...
* 如果有tslint.json,运行npm run lint package-name。否则,在包目录下运行tsc。
【讨论】:
是的,在如此大的项目中有时会发生这种情况。 但是你可以直接在你创建的类型定义上调用 TypeScript 编译器(假设你的项目文件夹是 jquery.datatables):
tsc --project types/jquery.datatables/tsconfig.json
为此,配置应该是有效的并且已经写入。 您也可以尝试直接运行它:
tsc --noEmit types/jquery.datatables/jquery.datatables-tests.ts
但如果您依赖其他文件,它可能会抱怨。 --noEmit 选项可防止 TSC 输出存储库中不需要的 JavaScript 代码,DefinitelyTyped 的测试会抱怨(未使用的文件,简而言之,您不应该签入)。
【讨论】:
noEmit 在tsconfig.json 中,则无需将其传递给命令行。