typescript - 在项目 .d.ts 定义文件中使用 @types 定义

标签 typescript types node-modules

我正在尝试为我的项目编写一个 .d.ts 文件来定义一些全局接口(interface)。 但是,我在该定义文件中使用非全局库类型时遇到问题。 特别是我试图引用的 RxJs 对我来说不起作用。

我认为最有效的方法是使用三斜杠引用标记来导入 RxJ 的类型,但这不起作用。

/// <reference types="rxjs" />

interface IUserService {
    user$: rxjs.Observable<IUser>;
}

最佳答案

我找到了我想做的事情的解决方案:

import RxJs from 'rxjs';

declare global {

    interface IUserService {
        user$: RxJs.Observable<IUser>;
    }

}

使用declare global { }我能够回到全局命名空间。 Typescript 确实缺乏关于这个有用指令的文档,该指令仅在本页末尾略有记录:https://www.typescriptlang.org/docs/handbook/declaration-merging.html#global-augmentation .

关于typescript - 在项目 .d.ts 定义文件中使用 @types 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43864777/

相关文章:

typescript - 在 TypeScript 中分布式应用数组运算符

node.js - 我如何在 gulp 4.0 版中重写这个 gulpfile.js

node.js - Typescript 中第三方模块的声明文件

node.js - Node 12 原生导入

javascript - 在 PrimeNG 中扩展多个面板时如何修复损坏?

javascript - 通过 Object.assign 在 Typescript 类中扩展 `this`

reactjs - 在 TypeScript 中合并时如何组合两种类型?

TypeScript 变量名作为接口(interface)类型?

c - 当我以 uLong 形式访问数组时会发生什么,该数组最初被声明为 unsigned short?

javascript - Array.reduce 奇怪的行为