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";
    

创建一个顶级ES6样式的js文件,将导入导出为单个文件,并将其命名为
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 {}