34. public, private
• メソッドやプロパティをprivateに
• コンパイル時チェックのみ
• publicもprivateも生成されるJavaScriptに違い
class Sample {
private test1() {}
public test2() {}
}
var sample = new Sample();
sample.test1();
sample.test2();
var Sample = (function () {
function Sample() { }
Sample.prototype.test1 = function () {
};
Sample.prototype.test2 = function () {
};
return Sample;
})();
var sample = new Sample();
sample.test1();
sample.test2();
エラー
TS JS
http://goo.gl/5UTb2
34
35. class A {
constructor(public str:string, public num:number){}
}
class B {
constructor(private a:A, public bool:bool){}
get str() { return this.a.str; }
get num() { return this.a.num; }
}
var b = new B(new A("vvakame", 29), true);
alert(b.str + " " + b.num + " " + b.bool);
getter, setter
• get, set アクセサが定義できる
• サーバから貰った複数のデータを合成したり
するのに思いのほか便利
TS
http://goo.gl/V5pNv
35
36. cast
• <any> 最強です 稀に使います
• TypeScriptの利点が失われるので極力使用し
ちゃあダメ!
TSclass A {
}
class B {
}
var b1:B = new A();
var b2:B = <B> new A();
var b3:B = <any> new A();
両方エラー
http://goo.gl/12KMc
36