在浏览器捆绑之后在另一个JavaScript文件中使用TypeScript类(Gulp build)

时间:2017-11-20 08:25:06

标签: javascript typescript gulp browserify

我阅读了以下question,因为我的TypeScript类在antoher javascript文件中是undefined。在另一个问题中,M98说要添加一个独立的浏览器来使用它全局。

我是浏览器的新手,打字稿也是gulp。

TypeScript类:

export class Test {
  static log = function(what: string) : void {
    console.log(what);
  }
} 
//export { Test }

Browserify / Gulp任务:

gulp.task('compile-ts', ['clean-ts'], function () {
    var tsFiles = glob.sync(config.js.tsSource);

    return browserify({
        standalone: "tsLib",
        basedir: ".",            
        debug: true,             
        entries: tsFiles
    })
        .external(["jquery"])   
        .plugin(tsify)          
        .bundle()               
        .pipe(source("modules.js")) 
        .pipe(gulp.dest(config.js.tsDest)); 
});

我的测试javascript文件中未定义我的typescript类,因为我创建了另一个打字稿文件并添加以下内容:

import {Test} from "./test-file";

export function log(log:string) {
    Test.log(log);
}

我想在JavaScript文件中使用我的TypeScript类,如下例所示:

function onLoad() {
  tsLib.log("test"); // I dont want that
  Test.log("test");  // I would like to use this, but it's undefined
}

tsLib.log是使用我的Test类的解决方法,但我只想将日志称为Test.log("whatever");。 这可能吗? 任何人都可以给我提示吗?

编辑: 如果我使用没有browserify的TypeScript文件并且只使用TypeScript编译器它似乎正在工作,但我想了解这个问题。 我做错了什么?

0 个答案:

没有答案