打字稿无法在同一模块中找到类

时间:2016-05-31 13:51:00

标签: typescript

我在相同的范围内有两个类和一个角度控制器。但是当尝试在角度控制器中创建Class2时,它不会识别我的构造函数,或者实际上它根本不识别该类console.log(m.Class2) = undefined。这是一个打字稿错误还是我错过了什么?我使用VS2015并且intellisensi可以找到该类,但在编译并在chrome上运行后,我收到错误消息:'m.Class2 is not a constructor'

  module m {
        export class Class1{
          constructor(protected id: number) {
          }
        }

        export class Class2{
          constructor(protected id: number) {        
          }
        }


        angular.module("test").controller("mopstest.controller", ['$scope', function ($scope: any) {
            let c = new m.Class1(1); //works
            let b = new m.Class2(1); //error m.Class2 is not a constructor
            console.log(m.Class1); //function Class1(id)....
            console.log(m.Class2); //undefined
        }]);
    }

1 个答案:

答案 0 :(得分:0)

您发布的代码

module m {
        export class Class1{
          constructor(protected id: number) {
          }
        }

        export class Class2{
          constructor(protected id: number) {        
          }
        }


        angular.module("test").controller("mopstest.controller", ['$scope', function ($scope: any) {
            let c = new m.Class1(1); //works
            let b = new m.Class2(1); //error m.Class2 is not a constructor
            console.log(m.Class1); //function Class1(id)....
            console.log(m.Class2); //undefined
        }]);
    }

除非m也在其他地方宣布,或者您的模块已拆分为多个文件(<{3}}上的更多内容

,否则肯定会有效