2013-02-10 18 views

答えて

5

奇妙なことに、インターフェイスや環境宣言でゲッターとセッターを指定することはできません。

あなたが得ることができる最も近いです:

interface Test { 
    Prop: number; 
} 

class Example implements Test { 
    private prop: number; 

    get Prop() :number { 
     return this.prop; 
    } 
} 

残念ながら、これはセッターを許すから実装を妨げるものではないと周囲宣言のコンテキストでは、設定しようとするから、呼び出し元を妨げません値。あなたは今、読み取り専用プロパティを宣言することができ活字体2.0で

+0

ライブラリー(WebオーディオAPI)ではなく、宣言ファイルを参照していませんでした;) – Eindbaas

+0

答えがありましたら、誰かが<5のターゲットプロジェクトで宣言ファイルを使用した場合どうなりますか? – Eindbaas

+0

TypeScriptはECMAScript 5以上でgetとsetしか使用できません。この制限は定義にも当てはまると思います。読み取り専用プロパティの概念は存在しません。 – Fenton

2

は、例えば

interface Point { 
    readonly x: number; 
    readonly y: number; 
} 

var p1: Point = { x: 10, y: 20 }; 
p1.x = 5;       // Error, p1.x is read-only 

var p2 = { x: 1, y: 1 }; 
var p3: Point = p2;     // Ok, read-only alias for p2 
p3.x = 5;       // Error, p3.x is read-only 
p2.x = 5;       // Ok, but also changes p3.x because of aliasing 

は詳細についてhereを参照してください。

関連する問題