是否有可能从包含require()而不是define()的TypeScript生成JS?

时间:2016-05-20 17:44:37

标签: javascript typescript

我已经了解了如何加载模块(提示:相对引用文件时,应始终以./开头,即使在同一文件夹中也是如此),并创建了一个完全使用TypeScript编写的应用程序。

我面临的当前问题是:如何使用我写的模块?现在我正在使用类似于:

的main.js文件
require(['my/typescript/module'], function(module) {
    //my application boostrapping code goes here
 });

但通过这样做,我失去了TypeScript的各种优势:

  1. 我无法使用ES6风格的导入(来吧,import {Module} from './my/typescript/module'对我来说更清洁)
  2. 我无法从TypeScript获取类型系统,因为我正在直接编写JavaScript
  3. 如果我添加一些错误的导入参考
  4. ,项目构建不会中断
  5. (更糟糕的是IMO)我无法从模块中获取自动完成功能(同样,我在JavaScript文件中)
  6. 所以,我想知道是否有可能将ES6导入和TypeScript结合起来,生成一个require() - 封闭的JS文件,而不是一个define()。

1 个答案:

答案 0 :(得分:0)

要使用ES6样式导入,我认为您应该首先导出模块



export default class SomeRamdomClass {    
    hello(name: string) {
        return `hello ${name}`;
    }
}

import importedRamdomClass from "./SomeRamdomClass";

let greeting = new importedRamdomClass();
console.log(greeting.hello('Jon'));




可在TypeScriptLang

上找到更多信息