增强位于 TypeScript 中声明的命名空间中的接口

2024-01-08

我想增强IHttpPromise<T>在声明的 Angular 命名空间内(来自“@types/Angular”)。这样我就能写$http.then(...).myCustomMethod(...).

我只需编写以下内容即可轻松增强全局上下文中的接口:

interface JQuery {
    $custom: string;
}

对于命名空间内的接口,同样的方法显然不起作用。尝试了几件事,比如声明angular再次命名空间并将增强接口放入其中,但是该方法和其他许多变体都不起作用。

请注意,我没有使用(外部)模块。


找到了解决方案。即使您不使用模块,也必须在单独的声明文件中执行以下操作:

import { IHttpPromise } from '@types/angular';

declare module '@types/angular' {
    interface IHttpPromise<T> {
        myCustomMethod(): something;
    }
}

导入声明的内容本身并不重要。我们必须进行导入以使 TS 将此文件视为模块才能正常工作。所以这也行得通:

import * as angular from '@types/angular';

这记录在最后here https://www.typescriptlang.org/docs/handbook/declaration-merging.html.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

增强位于 TypeScript 中声明的命名空间中的接口 的相关文章

随机推荐

  • 在 CDI 实现项目中包含空 beans.xml 的目的是什么?

    我在用weld CDI 的 RI 作为我的 JSF EJB JPA Web 应用程序中的依赖项注入组件 我看到在我的项目中我们有空的 beans xmlMETA INF beans xml in ejb jar and WEB INF be
  • 使用 JAX-RS 和 Jackson 将 JPA 实体转换为 REST 表示的最佳方法

    我正在寻找一种将一些 JPA 实体导出到 REST API 的方法 但不是每次我想根据入口点共享一些特定字段时都发送整个实体 这是一个小例子 假设我们有一个Author具有很少字段的类 Entity public class Author
  • YouTube iframe api 未触发 onYouTubeIframeAPIReady

    我已经与 youtube iframe api 斗争了一段时间了 不知怎的方法onYouTubeIframeAPIReady并不总是被触发 从症状来看 似乎是负载问题 检查器中没有显示任何错误 这是我的代码 HTML div div
  • Emscripten 找不到 cmake 的路径

    我已经将说明仔细阅读了好几遍 https kripken github io emscripten site docs getting started downloads html 查了无数论坛 还是无法解决这个问题 我正在运行 Windo
  • 是否可以用现有图中的常量替换占位符?

    我有一张经过训练的模型的冻结图 它有一个tf placeholder我总是向其提供相同的价值 我想知道是否可以将其替换为tf constant反而 如果是这样的话 任何例子将不胜感激 编辑 这是代码的样子 以帮助可视化问题 我正在使用 由其
  • WCF:从另一方收到不安全或安全错误的错误

    我创建了一项具有 aspnet 角色和安全性的 WCF 服务 当我在一个网站上使用它并尝试检查是否使用正确的用户名和密码时 它工作得很好 但是如果用户名和密码不正确 它会给我一个错误 从对方收到不安全或不正确安全的故障 派对 有关错误代码和
  • 从终端构建、部署和运行 iphone 模拟器

    我是 mac 和 xcode 的新手 请告诉我 iphone xcodeproject 在 xcode IDE 之外执行以下任务的过程 使用 xcodebuild 命令构建完成 在模拟器中部署 在模拟器中运行 如何使用 ant Apples
  • 默认参数的词法声明问题[重复]

    这个问题在这里已经有答案了 我在定义一些时遇到一些问题功能声明后class 我用的是默认的params之前在声明函数时 但我不知道是否也可以使用函数或类作为默认参数 我的代码是这样的 const Matrix class some code
  • Jquery .on 与双击事件

    为什么这会起作用 document on dblclick areaA tr has td function e code here 这并不 areaA tr has td on dblclick function e Code here
  • 为什么匿名类中只能访问最终变量?

    a只能在这里最终决定 为什么 我怎样才能重新分配a in onClick 方法而不将其保留为私有成员 private void f Button b final int a b addClickHandler new ClickHandle
  • 为什么缺少 object.__getattr__ ?

    为什么object似乎没有 getattr 方法 它定义了两者 setattr and delattr 这三个都不需要吗 gt gt gt object setattr
  • CNContact 标识符中的“:ABPerson”字符串是什么?

    我的 iOS 应用程序会时不时地检查联系人并将新联系人导入到自己的数据库中 我检查了该联系人 它已经存在identifier字段 通常由 UUID 填充 CNContactStore store CNContactStore new sto
  • 关闭 Tkinter 后运行 wxPython

    我们有两个应用程序 一个使用 Tkinter 界面开发 另一个使用 wxPython 构建 两者都相当复杂 运行完 Tkinter 应用程序后 我希望在选择 Tkinter 应用程序中的按钮后运行 wxPython 应用程序 是否可以切换事
  • 在 PHP 中将段落分解为句子

    我一直在使用 explode mystring 将段落拆分成句子 然而 这不包括用不同标点符号结束的句子 例如 有没有办法使用数组而不是单个字符作为分隔符 或者还有另一种使用各种标点符号进行拆分的巧妙方法吗 I tried explode
  • 使用阻塞 IO 的多线程会损坏 Java 中的文件

    AIM 使用 Java 中的阻塞 IO 构建多线程应用程序来下载文件 请不要建议我使用非阻塞 IO 我被告知要使用这个 Issue 我的代码在下载服务器上托管的文件的客户端计算机上运行良好 但是 问题是我的服务器使用多个线程播种文件 在所有
  • ViewBag、ViewData、TempData、Session - 如何以及何时使用它们?

    ViewData 和 ViewBag 允许您访问视图中从控制器传递的任何数据 这两者之间的主要区别在于访问数据的方式 在 ViewBag 中 您使用字符串作为键来访问数据 ViewBag numbers 在 ViewData 中 您使用属性
  • 服务和广播接收器之间的区别

    我试图了解服务和广播接收器之间的区别是什么 在我看来 他们也可以做同样的事情 例如我有一个应用程序 App1 提供名为 ToastHelloWorld 的服务 该服务仅创建一个 Toast 和 stopSelf 我使用带有操作名称的意图过滤
  • 适用于 Android 的 card.io Mono (Xamarin Studio)

    有没有人成功创建了一个他们愿意分享的card io包装器 可以在Android应用程序的Mono中使用 或者有人可以阐明我做错了什么吗 创建一个新的Android Java 绑定库 Project 添加 jar 和 so 文件卡 io SD
  • 找出 Google Big Query 中每个字段占用的空间量

    我想优化我的 Big Query 和 google 存储表的空间 有没有办法轻松找出表中每个字段所获得的累积空间 这对我来说并不简单 因为我有一个复杂的层次结构 有许多重复的记录 您可以在 Web UI 中执行此操作 只需在下面的查询中键入
  • 增强位于 TypeScript 中声明的命名空间中的接口

    我想增强IHttpPromise