2016-05-31 2 views
0

У меня есть два класса в одной области и угловой контроллер. Но при попытке создать Class2 в угловом контроллере он не распознает мой конструктор или фактически не распознает класс вообще console.log(m.Class2) = undefined. Является ли это ошибкой машинописного текста или я что-то упускаю? Я использую VS2015, и intellisensi может найти класс, но после компиляции и запуска его на chrome я получаю сообщение об ошибке: 'm.Class2 is not a constructor'.TypScript не может найти класс в том же модуле

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 
     }]); 
    } 
+0

Он должен Работа. – Paleo

ответ

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 не также объявлена ​​в другом месте, или у вас есть модуль разбит на несколько файлов (подробнее об этом https://github.com/basarat/typescript-book/blob/master/docs/tips/outFile.md)

+0

Да, каждый класс и контроллер находятся в разных файлах, но используют модуль m. –

+0

Если они находятся в разных файлах, тогда заказ имеет значение. Используйте внешние модули (не 'module'). См. Https://github.com/basarat/typescript-book/blob/master/docs/tips/outFile.md – basarat

+0

Я читал эту страницу несколько раз, но я, похоже, не понимаю, не могу объяснить? –

Смежные вопросы