2016-06-18 3 views
0

Скажем, у меня есть эти три файла:Машинопись модули экспорта/импорта путаница

moduleA.ts:

export const foo = 42; 

moduleB.ts:

module TestModules { 
    export const bar = 43; 
} 

moduleC.ts:

import './moduleA'; 

module TestModules { 
    console.log(TestModules.bar); 
} 

Когда я пытаюсь скомпилировать, я g et a moduleC.ts(4,29): error TS2339: Property 'bar' does not exist on type 'typeof TestModules'. ошибка.

Почему?

Я знаю, что смешивание пространств имен и модулей невелика, но что делать, если у меня есть проект TypeScript старого стиля значительного размера, и я хочу начать использовать модули в стиле ES6?

ответ

1

ОК, это объясняется в этом выпуске: https://github.com/Microsoft/TypeScript/issues/909.

TL; DR: Не смешивайте внутренние и внешние модули. Это не работает.

Что плохого для старых проектов: они в значительной степени застряли с внутренними модулями или же - удачный рефакторинг.

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