タイトルのとおり:TypeScriptは名前空間をサポートしていますか?もしそうなら、どうすれば使えますか?TypeScriptは名前空間をサポートしていますか?
答えて
活字体は、モジュール密接に次の例は、スペックから取られているのECMAScript 6でどうなるかに関係を定義することができます。あなたはモジュール名にドットを使用する場合は、次のように、typescriptですが、ネストされたモジュールにこれをコンパイルします:
module A.B.C {
export var x = 1;
}
をこれは何も重要ですが、あなたが正確な同じモジュール名を再利用する場合ということです
module A {
module B {
module C {
export var x = 1;
}
}
}
に等しく、 1つのタイプコピープログラムでは、コードは同じモジュールに属します。したがって、ネストされたモジュールを使用して階層的な名前空間を実装できます。ここで
'namespace'キーワードはありませんが、内部モジュール( 'module'キーワードを使用)と外部モジュール( 'export'キーワードを使用)は、コードを論理階層に分割するのと同様の方法を提供します。あなたが見ることができるように、モジュールは名前を持ち、入れ子にすることができ
module outer {
var local = 1;
export var a = local;
export module inner {
export var x = 10;
}
}
:
typescript 1.5このようなキーワードがあります –
'namespace'や' module'ソースコードとの混合はお勧めしません。 – fletchsod
活字体の名前空間の例である:
///<reference path='AnotherNamespace/ClassOne.ts'/>
///<reference path='AnotherNamespace/ClassTwo.ts'/>
module MyNamespace
{
import ClassOne = AnotherNamespace.ClassOne;
import ClassTwo = AnotherNamespace.ClassTwo;
export class Main
{
private _classOne:ClassOne;
private _classTwo:ClassTwo;
constructor()
{
this._classOne = new ClassOne();
this._classTwo = new ClassTwo();
}
}
}
あなたがよりここにチェックアウトすることができます:http://www.codebelt.com/typescript/javascript-namespacing-with-typescript-internal-modules/
はFalseを...
module A.B.C {
export var x = 1;
}
が
module A {
export module B {
export module C {
export var x = 1;
}
}
}
に等しく、
あなたは、モジュールAの外に書くことができますので:
var y = A.B.C.x;
しかし:バージョン1.5のよう
module A {
module B {
module C {
export var x = 1;
}
var y = C.x; // OK
}
//var y = B.C.x; // Invalid
}
//var y = A.B.C.x; // Invalid
、活字体はnamespace
キーワードをサポートしています。名前空間は内部モジュールと同等です。 What's new in Typescriptから
:
module Math {
export function add(x, y) { ... }
}
後::
前
namespace Math { export function add(x, y) { ... } }
内部モジュールを定義するために、今、あなたはmodule
とnamespace
の両方を使用することができます。
'module'と' namespace'は同じJavaScriptコードに変換されます。 –
私は 'namespace'も' module'ソースコードと混ぜることも勧めません。 – fletchsod
- 1. TypeScriptは名前空間のクラスのクラス宣言をサポートしていますか?
- 2. HTML5は名前空間をサポートしていますか?
- 3. typescript - インポートに名前空間が含まれていません
- 4. 匿名名前空間はすべての名前空間を囲んでいますか?
- 5. Typescriptで名前空間を別の名前でエクスポートする方法
- 6. 型または名前空間名「ServiceBus」名前空間に存在していない「マイクロソフト」
- 7. 複数のファイルに名前空間を指定するTypeScriptモジュール
- 8. TypeScriptのグローバル名前空間変数を宣言する
- 9. 名前空間パターンは、私は、次の名前空間パターンを使用していますエラー
- 10. 名前空間をグローバルに参照していますか?
- 11. コントローラー名とプレゼンター名前空間の名前が競合しています
- 12. 名前空間なしのGroovy XMLSlurper名前空間エラー
- 13. 名前空間
- 14. 型または名前空間名「PersistentBagは」名前空間に存在しない「NHibernate.Collection」
- 15. 名前空間 '<グローバル名前空間>'には既に 'ワークフロー'の定義が含まれています
- 16. タイプまたは名前空間の名前UpdatePanelが名前空間System.Web.UIに存在しません
- 17. 名前空間に型または名前空間の名前が存在しません
- 18. CS0234 \t型または名前空間名「Owin」の名前空間に存在しない「Microsoftの
- 19. .netの名前空間の名前を変更します。
- 20. Python Import Starは隠し名前空間を作成していますか?
- 21. はNDBは、名前空間
- 22. 名前空間 'Extensions'が名前空間 'Microsoft.Office.Tools.Excel'に存在しません
- 23. 名前空間 'SqlServer'が名前空間 'Microsoft.Synchronization.Data'に存在しません
- 24. 名前空間 'Linq'が名前空間 'System.Data'に存在しません
- 25. 名前空間 'Caching'が名前空間 'System.Runtime'に存在しません
- 26. SelectSingleNode名前空間なし
- 27. 異なる名前空間から名前空間のリソースを作成する
- 28. は、XML名前空間
- 29. html:FBML名前空間
- 30. 名前空間&__autoload
これらのモジュールは現在ネームスペースと呼ばれています。https://github.com/Microsoft/TypeScript/issues/2159 – Alex
'namespace'や' module'ソースコードとの混合はお勧めしません。 – fletchsod