9

C#では、これを行うことができます:

using IAnyType = App.Namespace.Types.IAnyType ;
class BaseClass : IAnyType { }

Typescriptに相当するものはありますか?

//BAD:
import IDialogOptions = App.Widgets.Interfaces.IDialogOptions; //A module cannot be aliased as a non-module type
class BaseClass implements IDialogOptions { }

//BAD:     
declare var IDialogOptions: App.Widgets.Interfaces.IDialogOptions;
class BaseClass implements IDialogOptions { } //The name IDialogOptions does not exist in the current context   

私が得ることができる最も近いものは次のとおりです。

import Interfaces = App.Widgets.Interfaces;
class BaseDialog implements Interfaces.IDialogOptions { }

このインターフェイスを使用する必要があるたびに、この長い名前を使用するのは理想的ではありません。すべてが悪いわけではないと思いますが、もっと良いものがあるかどうか疑問に思っていましたか?

4

2 に答える 2

5

私は実際には、代替案よりも元のソリューションを好みます:

import Interfaces = App.Widgets.Interfaces;
class BaseDialog implements Interfaces.IDialogOptions { }

エイリアス ( Interfaces) がないと、名前の競合が発生する可能性があります。これはusing、エイリアスを使用したり、完全な名前空間を使用したりすることになるため、ステートメントで処理する必要があった場合は本当に苦痛です。

using myAlias = App.Namespace.Types;

少なくとも、インポートするすべてのモジュールにエイリアスがあるということは、これが問題にならないことを意味します。

于 2013-01-16T15:06:56.717 に答える
3

私も、期待どおりに別名を付けられないことに腹を立てています。私がやったことは、短縮された「名前空間」を使用して物事を短くすることになりました。

import RSV = module("views/researchSectionView")
var r = new RSV.ResearchSectionView();
于 2013-01-16T03:00:43.577 に答える