2016-08-31 3 views
1

Я начинаю новый проект с машинописными текстами, и у меня есть вопросы об импорте. Давайте предположим, что у меня есть эти 2 файла:Импорт с машинописными текстами

// foo.ts 
namespace root { 
    export class Test { 
     constructor() { 
      console.log(BAR) 
     } 
    } 
} 

// a/bar.ts 
namespace root.a { 
    export const BAR = 'Whatever' 
} 

Как я могу использовать мой BAR сопзЬ в моем классе Test? Я попытался добавить /// <reference path="a/bar.ts" />, а затем позвоню root.a.BAR или даже a.BAR.

Но я бы предпочел не использовать этот справочный оператор, возможно ли это? Кроме того, я хотел бы использовать BAR без его полного пространства имен, также возможно?

Спасибо заранее,
Ксавье

ответ

1

Я предпочел бы не использовать это ссылочное заявление, возможно

Да, вы бы использовать tsconfig.json: https://basarat.gitbooks.io/alm/content/config/tsconfig.html но остерегайтесь (вам необходимо будет заказать files): https://basarat.gitbooks.io/typescript/content/docs/tips/outFile.html

Вместо этого используйте модули.

Больше

https://basarat.gitbooks.io/typescript/content/docs/project/modules.html

+1

Я хотел бы расширить ответ немного больше и меньше полагаться на внешние ссылки на ваш собственный сайт. Однако ответ полезен и правилен. Кстати, спасибо за потрясающую работу над книгой, я регулярно обращаюсь к ней. –

0

Спасибо за ваш ответ, basarat.

Я использую пространств имен, потому что я не хочу, чтобы создать что-то вроде RequireJS, требуемого модулей. Но если я хорошо понимаю, это не правильный способ решить мою проблему.

Я попытался следовать этому примеру (машинопись + угловой 1): hottowel-angular-typescript by John Papa, но действительно ли это хороший пример? Я имею в виду, я действительно не хочу префикс каждого класса/интерфейса/const ... своим пространством имен!

Есть ли другое решение без файловых модулей?

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