Use @types definitions in project .d.ts definition file

試著忘記壹切 提交于 2019-12-10 10:52:28

问题


I'm trying to write a .d.ts file for my project to define some global interfaces. However I have a problem using non-global library types inside that definition file. Especially RxJs which I'm trying to reference does not work for me.

The thing I thought would work the best was using a triple-slash reference tag to import the types for RxJs, however this didn't work.

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

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

回答1:


I found the solution to what I wanted to do:

import RxJs from 'rxjs';

declare global {

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

}

Using declare global { } I was able to get back into the global namespace. Typescript is really lacking documentation on this useful directive which is only documented slightly at the end of this page: https://www.typescriptlang.org/docs/handbook/declaration-merging.html#global-augmentation.



来源:https://stackoverflow.com/questions/43864777/use-types-definitions-in-project-d-ts-definition-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!