0

我已经声明了以下文件

应用程序.types.ts

/// <reference path="../../typings/tsd.d.ts"/>
module App{
    export var Module =     "website";
    //---------------Controller Base Types---------------
    export interface IScope extends ng.IScope {
        events: Controller;
    }
    export class Controller{
        protected scope: IScope;
        static id       : string;
        constructor($scope: IScope,controllerId:  string){
            this.scope        =     $scope;
            this.scope.events =     this;
            Controller.id                =      controllerId;
        }
    }
}

应用程序.ts

    /// /// <reference path="app.types.ts"/>
    module App {
    "use strict";
    var app = angular.module(Module, [
        // Angular modules
        'ngMessages','ngAnimate','ngTouch','ngAria','ngSanitize',
        // Custom modules
        'ui.router','ui.bootstrap','ui.bootstrap.tpls'
        // 3rd Party Modules
    ]);
}

代码编译为 Js 没有错误,但变量 Module 在文件中未定义。

我也尝试使用 App.Module 但变量仍然未定义

更新:我检查了 app.types.js 是否插入到 app.js 之前的 html 中。那里生成的 Js 文件似乎不正确。

//App.js
(function(){/// <reference path="app.types.ts"/>
var App;
(function (App) {
    "use strict";
    var app = angular.module(App.Module, [
        // Angular modules
        'ngMessages', 'ngAnimate', 'ngTouch', 'ngAria', 'ngSanitize',
        // Custom modules
        'ui.router', 'ui.bootstrap', 'ui.bootstrap.tpls'
    ]);
})(App || (App = {}));
}());

//App.types.js
(function(){/// <reference path="../../typings/tsd.d.ts"/>
var App;
(function (App) {
    App.Module = "website";
    var Controller = (function () {
        function Controller($scope, controllerId) {
            this.scope = $scope;
            this.scope.events = this;
            Controller.id = controllerId;
        }
        return Controller;
    })();
    App.Controller = Controller;
})(App || (App = {}));
}());

4

1 回答 1

0

您应该添加:

/// <reference path="relative/path/to/app.types.ts"/>

到你的app.ts文件。如果我没记错的话,您应该看到脚本的顺序不正确 - 即app.types.jsapp.js.

于 2015-11-04T12:03:32.370 回答