Trying to understand RxJS imports

后端 未结 1 676
误落风尘
误落风尘 2020-12-16 23:10

I\'m having a hard time figuring out how exactly this import statement works (in an Angular application written in Typescript):

import \'rxjs/add/operator/to         


        
相关标签:
1条回答
  • 2020-12-16 23:51

    It's pretty simple because TypeScript by default looks into node_modules directory.

    Importing the following:

    import {Observable} from 'rxjs/Observable';
    

    is resolved as node_modules/rxjs/Observable.d.ts which is enough to compile the code.

    Similarly importing rxjs/add/operator/toPromise is resolved as node_modules/rxjs/add/operator/toPromise.ts. Btw you can use the --traceResolution compiler option to see what TypeScript path are tested.

    When you have your compiled JS (eg. in commonjs format) you can run your app in node because it'll call require('rxjs/Observable') which will resolve to node_modules/rxjs/Observable.js. Then similarly with rxjs/add/operator/toPromise.

    Be aware that the code structure of RxJS github page is different than the actual npm package. Basically, just the package.json and the src dir with compiled .js and .d.ts files are uploaded to the npm repository (the original .ts source files are in node_modules/rxjs/src but you never want to work directly with them).

    0 讨论(0)
提交回复
热议问题