TypeScript의 개인 정적 속성
아래와 같은 작업을 수행하면 클래스 외부의 숙박업소에 어떻게 액세스할 수 있습니까?
class Person
{
private static name: string;
}
console.log(Person.name);
접근이 불가능하지 않을까요?
그것은 오류여야 하지만 그렇지 않습니다.사양의 섹션 8.2.1:
통계의 접근성은 지정할 수 없습니다. 통계는 사실상 항상 공개되어 있습니다.
통계에 대한 접근성 수식어는 팀이 과거에 고려했던 사항입니다.강력한 활용 사례가 있다면 코드플렉스 사이트에서 이 문제를 제기해야 합니다!
class Person
{
private static theName: string = "John";
static get name():string{
return Person.theName;
}
}
console.log(Person.name);
정적 속성이 비공개인 경우에는 정적 속성에 액세스하기 위한 정적 가져오기 방법을 제공해야 합니다.이것은 일반적인 해결책은 아닐 수도 있지만 개인 정적 속성에 직접 액세스하는 유일한 방법입니다.반면에 인스턴스화된 개체에서 속성에 액세스하려는 경우 두 번째 get 메서드를 추가해야 할 수도 있습니다.정적 get 메서드는 인스턴스화된 개체에 표시되지 않으므로 두 get 메서드 모두 이름이 같을 수 있습니다.
음, 사실은 그렇지 않아요, 사실 당신은 할 수 있어요.아마도 가장 중요한 것은 그것과 관련된 TypeScript 버전에 대해 물어보는 것입니다.VS2012 설치의 일부인 v1.5 베타 버전이 있습니다(예, VS2013을 대상으로 함에도 불구하고 작동합니다).
다음과 같은 수업이 있습니다.
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);
};
}
위의 샘플에서 두 가지를 모두 볼 수 있습니다.private
그리고.static
클래스는 다음 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;
})();
컴파일(표시된 것처럼)과 실행(신뢰할 수 있는 작업 또는 시도)에 문제가 없습니다.
언급URL : https://stackoverflow.com/questions/12827544/private-static-properties-in-typescript
'source' 카테고리의 다른 글
python에서 base 2에 로그인합니다. (0) | 2023.07.19 |
---|---|
D3로 처리하기 위해 Nuxt.js 프레임워크에서 CSV 파일 가져오기 (0) | 2023.07.19 |
UIButton:적중 영역을 기본 적중 영역보다 크게 만들기 (0) | 2023.07.19 |
SQL Server 케이스 문(IS NULL인 경우) (0) | 2023.07.19 |
다시 삽입하지 않고 PyMongo의 MongoDB 문서 배열에 항목 추가 (0) | 2023.07.19 |