我目前正在尝试创建一个带有一些用于Jasmine测试的实用程序的小型npm软件包库。该代码位于我的GitHub https://github.com/DrMueller/MLAH.Testing中,目前仅包含2个函数和一个类型。 不幸的是,我不是100%地热衷于d.ts文件导入的神奇效果: 根据官方文件:
默认情况下,所有可见的“ @types”软件包都包含在您的 汇编。任何封闭文件夹的node_modules / @ types中的软件包 被认为是可见的;具体来说,这意味着 ./node_modules/@types /
Therefore, creating a type like
export type SpyOf<T> = {
[Method in keyof T]: jasmine.Spy;
};
我猜想,当我删除typeRoots时,可以找到茉莉花类型,但是我仍然得到
错误TS2503:找不到命名空间“茉莉花”。
根据文档,还考虑其他属性(例如include或types),它们总是对找到的类型进行定界,因此,未指定它们应将node_modules / @ types中的所有类型考虑在内。
到目前为止唯一有效的解决方案是通过以下方式手动将其添加到每个文件中:
/// <reference path="../../node_modules/@types/jasmine/index.d.ts" />
这适用于编译,但是由于创建的npm包与代码不在同一个相对文件夹中,因此会引发异常。
我想念东西吗,还是茉莉花是某种特殊的模块?
答案 0 :(得分:2)
我担心要解决这个问题,我需要我不具备的特定于Angular的知识,但是没有:我看到angular.json
引用了src/tsconfig.app.json
,并且可以通过运行{{1 }}。
从tsc -p src/tsconfig.app.json
删除"types": []
行。该行将关闭所有可见src/tsconfig.app.json
软件包的自动加载。