问题
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