2013-06-20 3 views
1

У меня есть файл машинопись внешнее определение (foo.d.ts):Почему импорт модуля TypeScript запрещает расширение существующего модуля?

declare module foo { 
    export class bar { 
    } 
} 

Затем я использую его, как это (в baz.ts):

/// <reference path="foo.d.ts" /> 
module foo { 
    class baz extends bar { 
    } 
} 

До сих пор так хорошо. Но когда я импортировать некоторые другие файл машинопись скомпилирован как AMD модуль компиляции брейков:

module foo { 
    class baz extends bar { // Error: could not find symbol "bar" 
    } 
} 

import T1 = module("test1"); // Removing this line resolves the compilation error 

Файл AMD импортируется простой, как:

export var NAME = "NAME"; 

Кто-нибудь знает, если это предназначено? Почему import нарушает мой код таким образом?

ответ

3

Я думаю, что есть ошибка в машинописном компиляторе.

Пожалуйста, попробуйте следующее, Убрана ссылка «ссылка путь =» foo.d.ts» и добавить

import f = module("foo.d"); 
module foo { 
    class baz extends f.foo.bar { 
    } 
} 

Я не знаю, как будет выход .js. Но, выполнив это не дает ошибки в визуальной студии.

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