2017-01-20 20 views
0

TypeScriptプロジェクトでタイプをインポートしようとしています。私はfoo.tsTypeScriptのインポート、モジュール、ネームスペースの理解

module Foo { 
    export class Bar { 
    } 
} 

... bar.ts

import { Bar } from "Foo"; 

を見つけることができませんファイル

ファイルのインポートがどのように動作するか完全にわからないんだけどモジュール 'Foo'。

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

ファイル '/scripts/foo.ts' モジュールではありません。

ここで私は何を誤解していますか?また、moduleまたはnamespaceを使用する必要がありますが、違いは何ですか?

foo.tsbar.tsが同じ場所にあることに注意してください...私は../scripts/を省略することができますか?

答えて

1

欠けていることは、TypeScriptがexternalinternalという2種類のモジュールをサポートしていることです。内部モジュールは新しいバージョンの名前空間に名前が変更されました(これは、より古い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" {...}であると私は何に基づいているように私は正確にあなたの投稿で伝えることができないため、あなたが必要としているものが何であるかを正確に見てみようそこには名前空間があなたの望むものであるように見えます。私は完全にはわかりませんが、あなたの答えがそのページにあるように感じます。

関連する問題