Aşağıda böyle bir şey yaparsanız, nasıl sınıfa dışarı özelliğine erişebilir?
class Person
{
private static name: string;
}
console.log(Person.name);
o ulaşılmaz olmamalı?
Aşağıda böyle bir şey yaparsanız, nasıl sınıfa dışarı özelliğine erişebilir?
class Person
{
private static name: string;
}
console.log(Person.name);
o ulaşılmaz olmamalı?
Bu bir hata olabilir ama değil gerekir. spec itibaren, bölüm 8.2.1:
Bu erişilebilirliğini belirtmek mümkün değildir statiği-onlar etkili her zaman herkese açıktır.
Statiği Erişilebilirlik düzenleyiciler takım geçmişte kabul etmiştir şey vardır. Güçlü bir kullanım durumunda varsa bu getirecektir codeplex sitede!
Pek değil, yapabilirsin aslında. Belki en önemli typescript hakkında sormaktır sürümü o ilgilidir. Ben v1.5 beta , benim VS2012 kurulum kısmını (bu VS2013 hedeflemektedir rağmen evet, çalışır).
Böyle bir sınıf var:
class ItemListPreProcessor {
private static names: string[] = [ 'Name', 'Age' ];
static createHeader = (eltName: string) => {
var pdiv = $(eltName);
pdiv.html('<table><thead><tr></tr></thead></tr><tbody></tbody></table>');
var row = $('tr', pdiv);
ItemListPreProcessor.names.forEach((n) => {
row.append('<th>' + n + '</th>');
});
return $('tbody', pdiv);
};
}
Örneklemde hem görebilir yukarıda privateve static. Sınıf aşağıdaki JavaScript derlenmiş:
var ItemListPreProcessor = (function () {
function ItemListPreProcessor() {
}
ItemListPreProcessor.names = ['Name', 'Age'];
ItemListPreProcessor.createHeader = function (eltName) {
var pdiv = $(eltName);
pdiv.html('<table><thead><tr></tr></thead></tr><tbody></tbody></table>');
var row = $('tr', pdiv);
ItemListPreProcessor.names.forEach(function (n) {
row.append('<th>' + n + '</th>');
});
return $('tbody', pdiv);
};
return ItemListPreProcessor;
})();
ve ya bunu derleme ile hiçbir sorun (bu bakınız) var, hem de onu infaz olarak (isterseniz siz deneyin, güven veya gereken bu).
class Person
{
private static theName: string = "John";
static get name():string{
return Person.theName;
}
}
console.log(Person.name);
Statik bir özellik özelse biz bunu erişmek için statik bir olsun yöntemini sağlamanız gerekir. Bu yaygın bir çözüm olmayabilir ama doğrudan özel statik özelliğe erişmek için bildiğim tek yoludur. aynı zamanda bir örneği nesneden özelliğine erişmek niyetinde Öte yandan, ikinci bir olsun yöntemi eklemek gerekebilir. Hem statik olsun yöntemi örneği nesneye görünmez olacağından yöntemleri aynı isme sahip olabilir olsun.