2016-12-28 14 views
0

私はこのようなことを持ちたいと思っています - Api.drinks.info - >これは静的であり、文字列を返します。しかし、私はエラーがありますthistypescript、アクセス静的メンバー

module App { 
export class Api { 
    public static drink: Drink; 
} 

class Drink { 
    static get base(): string { return '/api/drink'; } 
    public static get info(): string { return `${Drink.base}/info`; } 
}} 

どうすれば修正できますか?ありがとうございました。

UPDATE


可能な解決策の一つ

module Api { 
export module Drink { 
    var base = '/api/drink'; 
    export var info = `${base}/info`; 
} 
export module Admin { 
    var base = '/api/drink'; 
    export var info = `${base}/info`; 
}} 

答えて

0

Api.drinkinfoを有するものである、クラス(コンストラクタ)、Drinkありません。 のインスタンスDrinkですが、そうではありません。それにアクセスしようとしている行は、インスタンスをクラスのように使用しようとしています。

それにアクセスする唯一の方法は本当にラウンドアバウトであるので、あなたは、Drinkをエクスポートしません:

this.resource = this.dataAccessService.getResource(Api.drink.constructor.info); 

...しかし、Drinkをエクスポートし、それを直接使用する方が良いでしょう:

this.resource = this.dataAccessService.getResource(Drink.info); 

引用符で囲まれたコードは、drinkインスタンスに値を割り当てないので、上記のいずれかを行う必要があります。


代わりには、おそらくあなたはApiの静的メンバーとして、Drink、コンストラクタを公開するためのもの?そう、あなたは少し物事を変更する必要がある場合は、コメントを参照してください。そして、

module App { 
    // Classes aren't hoisted, so this needs to be before Api 
    class Drink { 
     static get base(): string { return '/api/drink'; } 
     public static get info(): string { return `${Drink.base}/info`; } 
    } 

    export class Api { 
     // 1. It's a function 
     // 2. We're initializing it to Drink 
     // 3. Because it's a constructor function/class, we use an 
     // initial capital letter in its name 
     public static Drink: Function = Drink; 
    } 
} 

this.resource = this.dataAccessService.getResource(Api.Drink.info); 
+0

は、それが財産だった方法ではなかったです。だから私は()を使わずにアクセスすることができます。 – ovasylenko

+0

私はモジュール、モジュールApi { 輸出モジュールを介してそれを実装する方法を見つけた{ var base = '/ api/drink'; エクスポートvar info = '$ {base}/info'; } エクスポートモジュール管理者{ var base = '/ api/drink'; エクスポートvar info = '$ {base}/info'; } } – ovasylenko

+0

@ovasylenko:それは私が意味していた* "しかし、"飲み物 "を輸出して直接使用する方が良いでしょう。" *(申し訳ありませんが、 'info'の' get'を逃しました) –

関連する問題