【问题标题】:Use @types definitions in project .d.ts definition file在项目 .d.ts 定义文件中使用 @types 定义
【发布时间】:2017-10-07 11:12:51
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: typescript types node-modules


    【解决方案1】:

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

    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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 2015-12-20
      • 2016-12-26
      • 1970-01-01
      • 2018-03-04
      • 2018-09-16
      相关资源
      最近更新 更多