我已经找到了许多关于如何设置模块增强文件以向node_module添加功能的示例,但对于如何将它们包含在类型记录编译中,我感到有点困惑。我是否应该导入在main.ts顶部进行增强的文件(或库中的public_api.ts ),如:
import './moduleaugmentationfile';或者,是否有其他标准方法使该添加的功能在整个应用程序中可用。
编辑:
这是一个示例应用程序。示例模块增强在moduleaugmentation.ts中。我在main.ts中添加了一条注释,解释了我对如何最好地包含模块增强的困惑。
发布于 2019-09-20 18:21:32
您的示例看起来不错,这也是实现增加一个模块的正确方法。
模块增强=已经有一个由包维护人员提供的给定npm包的类型声明,您希望对其进行扩展。这里重要的是在顶层有一个export/import来将文件分配给模块作用域,否则编译器将需要一个环境模块声明 (不存在包的类型定义)。
不应该需要手动包含类型定义(我认为在过去,这可以用三重斜杠指令来完成,您不需要对全局声明使用import )。现在编译器使用自动夹杂 (虽然我不能确切地确定不同的角度配置):
如果“文件”和“包含”都未指定,编译器默认将所有TypeScript (.ts、.d.ts和.tsx)文件包含在包含的目录和子目录中,但使用“排除”属性排除的文件除外。
关于RxJS使用的最后一点提示:您可以直接从包根导入Observable (参见这里中的RxJS v6文档示例)。
import { Observable } from "rxjs",这样你就不需要依赖包内装了。
import {Observable} from "rxjs"
declare module "rxjs" {
interface Observable<T> {
subscribeAndLog: (a: string) => void
}
}干杯,希望能帮上忙。
https://stackoverflow.com/questions/58019396
复制相似问题