首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何正确导入/包括到一个角度库或应用程序中的类型记录模块增强?

如何正确导入/包括到一个角度库或应用程序中的类型记录模块增强?
EN

Stack Overflow用户
提问于 2019-09-19 21:59:50
回答 1查看 1.6K关注 0票数 1

我已经找到了许多关于如何设置模块增强文件以向node_module添加功能的示例,但对于如何将它们包含在类型记录编译中,我感到有点困惑。我是否应该导入在main.ts顶部进行增强的文件(或库中的public_api.ts ),如:

代码语言:javascript
复制
import './moduleaugmentationfile';

或者,是否有其他标准方法使该添加的功能在整个应用程序中可用。

编辑:

是一个示例应用程序。示例模块增强在moduleaugmentation.ts中。我在main.ts中添加了一条注释,解释了我对如何最好地包含模块增强的困惑。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-20 18:21:32

您的示例看起来不错,这也是实现增加一个模块的正确方法。

模块增强=已经有一个由包维护人员提供的给定npm包的类型声明,您希望对其进行扩展。这里重要的是在顶层有一个export/import来将文件分配给模块作用域,否则编译器将需要一个环境模块声明 (不存在包的类型定义)。

不应该需要手动包含类型定义(我认为在过去,这可以用三重斜杠指令来完成,您不需要对全局声明使用import )。现在编译器使用自动夹杂 (虽然我不能确切地确定不同的角度配置):

如果“文件”和“包含”都未指定,编译器默认将所有TypeScript (.ts、.d.ts和.tsx)文件包含在包含的目录和子目录中,但使用“排除”属性排除的文件除外。

关于RxJS使用的最后一点提示:您可以直接从包根导入Observable (参见这里中的RxJS v6文档示例)。

代码语言:javascript
复制
import { Observable } from "rxjs"

,这样你就不需要依赖包内装了。

代码语言:javascript
复制
import {Observable} from "rxjs"

declare module "rxjs" {
  interface Observable<T> {
    subscribeAndLog: (a: string) => void
  }
}

干杯,希望能帮上忙。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58019396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档