2017-01-20 4 views
0

У меня возникли проблемы с попыткой импорта типов в моем проекте TypeScript. Я не совсем уверен, как работает импорт ...Понимание импорта, модуля и пространства имён TypeScript

Файл foo.ts

module Foo { 
    export class Bar { 
    } 
} 

Файл bar.ts

import { Bar } from "Foo"; 

Не удается найти модуль 'Foo'.

import { Bar } from "../scripts/Foo"; 

Файл '/scripts/foo.ts' не является модулем.

Итак, что я не понимаю здесь? Кроме того, следует ли использовать module или namespace, и в чем разница?

Примечаниеfoo.ts и bar.ts находятся в том же месте ... я могу опустить ../scripts/?

ответ

1

Недостатком является то, что TypeScript поддерживает два типа модулей - external и internal. Внутренние модули были переименованы в пространства имен в более новых версиях (вот почему есть более старые module и более новые ключевые слова namespace - вы можете использовать их по своему желанию в своем проекте/они равны).

Если вы используете import синтаксис в bar.ts, вы пытаетесь использовать внешний модуль.

Но foo.ts не является внешним модулем, пока вы не добавите export в корневую область.

Я рекомендовал бы остаться с import и использовать внешние модули, как это:

Foo.ts

export class Bar { 
} 

Bar.ts

import { Bar } from "./Foo"; // path needs to be relative here 
// if referencing files are in same folder use ./ to force the path to be relative 

Существует нет необходимо использовать module/namespace, пока вы не захотите для переноса классов в пространства имен.

0

Возможно, вам следует ознакомиться с некоторыми документами. Быстрый google дал мне this, which explains the different between namespace and module. Посмотрите на это и попытайтесь получить более точное представление о том, что именно вам нужно, потому что я не могу точно сказать ваше сообщение, потому что кажется, что синтаксис модулей будет declare module "Foo" {...} и основан на том, что я видя там, кажется, пространство имен может быть тем, что вы хотите. Я не совсем уверен, но я чувствую, что ваш ответ на этой странице.

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