5
我正在爲一個不存在的庫創建一個聲明文件,但是那裏有一些只讀屬性的類。我怎樣才能在宣言中提到這一點?如何添加只讀屬性到聲明文件?
我正在爲一個不存在的庫創建一個聲明文件,但是那裏有一些只讀屬性的類。我怎樣才能在宣言中提到這一點?如何添加只讀屬性到聲明文件?
奇怪的是,你不能在接口或環境聲明中指定getters和setter。
你可以得到最接近的是:
interface Test {
Prop: number;
}
class Example implements Test {
private prop: number;
get Prop() :number {
return this.prop;
}
}
不幸的是,這並不能阻止允許二傳手執行情況和環境聲明的情況下它不會防止來電者試圖設置價值。
隨着打字稿2.0現在你可以聲明只讀屬性,例如
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瞭解更多詳情。
糟糕,這'還沒有存在'提到聲明文件,而不是庫(網絡音頻API);) – Eindbaas 2013-02-10 11:42:33
但是,謝謝你的答案,如果有人在<5目標項目中使用聲明文件會發生什麼? – Eindbaas 2013-02-10 11:43:16
您只能在TypeScript中使用get和set來設置ECMAScript 5和更高版本 - 我想這個限制也適用於定義。只讀屬性的概念不存在。 – Fenton 2013-02-10 11:46:42