Вам не нужен экспорт, если вы не загружаете свой файл, используя систему модулей, и если вы не размещаете свой код в файле module/namepsace.
Например, это должно работать нормально:
class MyClass {
private x: number;
constructor(x: number) {
this.x = x;
}
getX(): number {
return this.x;
}
doit(y: number): number {
return this.x * y;
}
}
function echo(value: any): any {
return value;
}
(образец.ц)
<html>
<head>
<script src="example.js"></script>
<script>
var a1 = new MyClass(10),
a2 = new MyClass(43);
console.log(echo("hey there!"));
console.log(a1.doit(a2.getX()));
</script>
</head>
<body></body>
</html>
Однако использование export
вполне допустимо, потому что оно не должно появляться в скомпилированном js (только не используйте -m
или --module
в параметры компилятора).
Например, это:
module MyModule {
export class MyClass {
private x: number;
constructor(x: number) {
this.x = x;
}
getX(): number {
return this.x;
}
doit(y: number): number {
return this.x * y;
}
}
export function echo(value: any): any {
return value;
}
}
Компилируется в это:
var MyModule;
(function (MyModule) {
var MyClass = (function () {
function MyClass(x) {
this.x = x;
}
MyClass.prototype.getX = function () {
return this.x;
};
MyClass.prototype.doit = function (y) {
return this.x * y;
};
return MyClass;
}());
MyModule.MyClass = MyClass;
function echo(value) {
return value;
}
MyModule.echo = echo;
})(MyModule || (MyModule = {}));
(Code in Playground)
И вы заметите, что в скомпилированном js нет export
.
Затем вы просто:
<html>
<head>
<script src="example.js"></script>
<script>
var a1 = new MyModule.MyClass(10),
a2 = new MyModule.MyClass(43);
console.log(MyModule.echo("hey there!"));
console.log(a1.doit(a2.getX()));
</script>
</head>
<body></body>
</html>
person
Nitzan Tomer
schedule
19.04.2016
export
. Модульную систему легко включить в VS2015. Параметры находятся в свойствах проекта в разделе TypeScript Build › Module system. - person Chris Bier   schedule 19.04.2016