Ha ilyesmit alább hogyan érhető el a tulajdonság ki az osztály?
class Person
{
private static name: string;
}
console.log(Person.name);
Ha nem lenne elérhető?
Ha ilyesmit alább hogyan érhető el a tulajdonság ki az osztály?
class Person
{
private static name: string;
}
console.log(Person.name);
Ha nem lenne elérhető?
Meg kell, hogy hiba, de nem az. A spec 8.2.1:
Nem lehetséges, hogy meghatározza a hozzáférhetőség statika-ezek gyakorlatilag mindig nyilvános.
Kisegítő módosítót statikai valamit a csapat tekinthető a múltban. Ha van egy erős használat esetén meg kell hozni ezt fel codeplex honlapon!
Nos, nem igazán, sőt akkor. Talán a legfontosabb, hogy kérje a géppel változata vonatkozik. Van v1.5 beta , része a VS2012 telepítés (igen, ez működik annak ellenére, hogy célozza VS2013).
Van egy osztály, mint ez:
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);
};
}
A fenti példában láthatjuk mind private, és static. Az osztály összeállítani, hogy a következő Javascript:
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;
})();
és nincs probléma sem fordítják le (ezt látod), valamint a végrehajtó azt (ezt meg kell bízni, vagy ha úgy tetszik, próbáld).
class Person
{
private static theName: string = "John";
static get name():string{
return Person.theName;
}
}
console.log(Person.name);
Ha egy statikus tulajdonság privát biztosítanunk kell a statikus get módszerrel elérni. Ez nem lehet egy közös megoldás, de ez az egyetlen módja tudok, hogy közvetlenül hozzáférjenek a saját statikus tulajdonság. Másrészt, akkor lehet, hogy egy második get módszert, ha azt is szándékozik a tulajdonság egy példányai objektumot. Mindkét kap módszerekkel lehet ugyanaz a neve, mivel a statikus get módszer láthatatlan lesz a példányosítva objektumot.