【发布时间】:2013-02-16 18:44:56
【问题描述】:
我正在测试带有多个模块的 typescript 编译器,这些模块将被编译为 AMD 模块。
我有一个“测试”模块和一个将使用它的单独文件
test.ts:
export module test {
'use strict';
export class Person {
age:number = 0;
sin:number = 1;
}
var pp = new Person();
}
test.ts 声明模块“test”并导出它。 文件编译,js输出符合预期:
test.js:
define(["require", "exports"], function(require, exports) {
(function (test) {
'use strict';
var Person = (function () {
function Person() {
this.age = 0;
this.sin = 1;
}
return Person;
})();
test.Person = Person;
var pp = new Person();
})(exports.test || (exports.test = {}));
var test = exports.test;
})
现在在同一个文件夹中有 test2.ts 将使用模块“test”
test2.ts:
///<reference path="test.ts"/>
import TT = module("test");
var p = TT.Person;
编译器在这里抱怨:
src/ts/test2.ts(5,11):“TT”类型的值上不存在“Person”属性
输出的 js 文件似乎是正确的: test2.js:
define(["require", "exports", "test"], function(require, exports, __TT__) {
///<reference path="test.ts"/>
var TT = __TT__;
var p = TT.Person;
})
编译器版本为:
0.8.2.0
命令行是:
tsc --cmets --declaration --target ES5 --module AMD $FilePath$
这里的编译器有什么问题?
谢谢。
【问题讨论】:
标签: typescript