Typescript 类型脚本创建模块
我想为我们的库创建模块,所以每次调用时,我们都可以使用Typescript 类型脚本创建模块,typescript,angular,Typescript,Angular,我想为我们的库创建模块,所以每次调用时,我们都可以使用import{Api,Map}从“ourlibrary” 目前我正在使用下面的方法 import {Api} from "../../Library/Api"; import {MapPage} from "../map/map"; 如何创建自己的包以获得以下结果 import {Api, Map} from "OurLib" 我认为有两个步骤可以做到这一点: 在SystemJS配置的map块中创建一个条目: System.config
import{Api,Map}从“ourlibrary”
目前我正在使用下面的方法
import {Api} from "../../Library/Api";
import {MapPage} from "../map/map";
如何创建自己的包以获得以下结果
import {Api, Map} from "OurLib"
我认为有两个步骤可以做到这一点:
- 在SystemJS配置的
块中创建一个条目:map
System.config({ map: { 'OurLib': 'path-to-ourlib' }, packages: { 'OurLib': { main: 'index.js', defaultExtension: 'js' } } });
- 创建一个TypeScript文件(例如,
)作为入口点模块,用于导入/导出要在库外部可用的内容:index.ts
export {Api} from "../../Library/Api"; export {MapPage} from "../map/map";
OurLib
exports.Api = require('../../Library/Api').Api;
exports.Map = require('.../map/map').Map;
这种方法的好处是它不会将您绑定到单个模块加载程序系统。因为它是直接的ES6特性(require/export),所以可以被SystemJS、Webpack、Typescript等使用
如下面的注释所述,require语句末尾出现.Api
和.Map
的原因是,通常从文件导入的是类。您可以在
export class Api {}
及
在每个相应的文件中。这样,您只分配要导出的类,而不是整个所需文件。它使您能够更好地控制捆绑的、公开的模块。我使用的是ionic,它有tscnoig.json。。。如何使用tsconfig上的设置?-它还有webdev。。有点不确定这是在webdev还是tsconfig上你的意思是你想为你的lib定义一个契约,例如,一个ourlib.d.ts?为什么要在行尾使用
.Api
和.map
?您通常会引用该导入文件中的特定类。您的意思是.Api和.map
是导出类的名称?@Basit全局“命名空间”将由文件名“OurFile”定义。但是,您可以导出全部,这将阻止您进行任何您想进行的重命名/重新映射,并且它将逐字导出所有您可能不想进行的操作。@Basit您的index.d.ts文件是什么样子的?里面真的有东西出口吗?
export class Map {}