【发布时间】:2017-05-02 17:18:10
【问题描述】:
我一直在一个项目中使用命名空间,一切正常,直到突然找不到这个“测试”命名空间。我错过了什么吗?
Can't find variable: Test in Game.ts
example.ts
namespace Test {
export class Example {
constructor() {
console.log("example");
}
}
}
game.ts
/// <reference path="test/example.ts"/>
namespace Game {
export class Snippet {
constructor() {
// Test is not found
let s = new Test.Example();
}
}
}
// Game.Snippet IS found
window.addEventListener("load", () => new Game.Snippet());
更新
经过仔细检查,我认为这是我的 gulpfile 或 browserify 中的错误。当我使用默认的 tsc 操作进行编译时,它可以工作!但是当使用 browserify 时它会失败。我关注了this tutorial
Gulpfile.js
var gulp = require("gulp");
var browserify = require("browserify");
var source = require('vinyl-source-stream');
var tsify = require("tsify");
var uglify = require('gulp-uglify');
var sourcemaps = require('gulp-sourcemaps');
var buffer = require('vinyl-buffer');
gulp.task("build", function () {
return browserify({
basedir: '.',
debug: true,
entries: ['dev/main.ts'],
cache: {},
packageCache: {}
})
.plugin(tsify)
.bundle()
.pipe(source('main.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(uglify())
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest("docs/js"));
});
【问题讨论】:
-
在命令行中添加
tsconfig.json或传递给tsc的所有标志。
标签: typescript namespaces