2015-11-14 2 views
1

Я чувствую, что это действительно основная ошибка, которую я делаю, но я не могу найти решение в любом месте. У меня есть два класса, Moo.ts:Ошибка машинописного ввода классов в отдельных файлах

module namespace { 
export class Moo{ 
    constructor() { 
     // window.console.log("hello from Moo"); 
     var foo:Foo = new Foo(); 
    } 
} 

и Foo.ts:

module namespace { 
export class Foo{ 
    constructor() { 
     // window.console.log("hello from Foo"); 
    } 
} 

При запуске Moo.ts я бы ожидать, чтобы это сделать экземпляр Foo, но это не так. Это даст эту ошибку:

TypeError: namespace.Foo is not a constructor

Это прекрасно работает, когда я ставлю два класса в том же файле TS, но когда я разбить их все разваливается. Я что-то упускаю?

ответ

1

Вы, вероятно, включали Foo.js (сгенерированный файл) в вашем HTML после Moo.js, это означает, что при Moo.js перспективе (как это было в первый JS-файл) он не нашел namespace.Foo

Порядок включая сгенерированные файлы js. Вот почему вам лучше использовать tsconfig.json и включить один сгенерированный файл js в свой html (вы можете использовать исходные карты для отладки кода TypeScript)

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