我有这个module.ts文件:打字稿和AngularJS 1.5:如何办理出口类
import { IHttpService, IPromise } from 'angular';
export class ProductService {
static $inject = ["$http"];
constructor(private $http: IHttpService) { }
loaded: boolean = false;
promise: IPromise<{ data: any }>;
getProducts(): IPromise<{ data: any }> {
if (!this.loaded) {
this.loaded = true;
this.promise = this.$http.get('/products.json');
}
return this.promise;
}
}
var module = angular.module("psShopping", ["ngComponentRouter"]);
module.value("$routerRootComponent", "shoppingApp");
module.service('products', ProductService);
,这被transpiled /编译module.js:
"use strict";
var ProductService = (function() {
function ProductService($http) {
this.$http = $http;
this.loaded = false;
}
ProductService.prototype.getProducts = function() {
if (!this.loaded) {
this.loaded = true;
this.promise = this.$http.get('/products.json');
}
return this.promise;
};
ProductService.$inject = ["$http"];
return ProductService;
}());
exports.ProductService = ProductService;
var module = angular.module("psShopping", ["ngComponentRouter"]);
module.value("$routerRootComponent", "shoppingApp");
module.service('products', ProductService);
有问题的行:exports.ProductService = ProductService;如果我手动删除这个应用程序 - 完美的作品。但是,如果我这样离开,在浏览器控制台中,我收到一个错误“出口未定义”。 可以做些什么呢?我不能从.ts文件中删除“导出”,因为这个类在其他文件中使用(我在那里导入它)。我尝试了不同的编译器选项,但它只是给了我不同的错误(如“定义没有定义”等),我不知道如何处理这个..也许theres一种方式,TSC将不会产生这条线?
谢谢你的帮助!
你如何在浏览器中加载模块?你使用的是browserify/webpack/jspn等?你需要导出课程吗? – dtabuenc
我只是有一个index.html附加所有的脚本文件。我附加的一个文件是上面的文件(module.js)。我只在应用程序中有一个模块(称为psShopping)。 – marc08
在你的tsconfig中设置'“module”:“none”'选项 – dtabuenc