我正在尝试为我的项目编写一个 .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/