TypeScript의 속성에 전용 설정기를 사용할 수 있습니까?개인 설정 기 typescript?
class Test
{
private _prop: string;
public get prop() : string
{
return this._prop;
}
private set prop(val: string)
{
//can put breakpoints here
this._prop = val;
}
}
컴파일러는 getter 및 setter에 대한 가시성이 일치하지 않는다고 불평합니다. 내가 뒷받침 필드를 설정할 수는 있지만 값이 설정되면 중단 점을 설정할 수 없다는 것을 알고 있습니다.
인터페이스를 사용하여 setter를 숨길 수 있지만 인터페이스는 속성을 정의 할 수 있으며 setter에 getter가 있는지 여부가 아닙니다.
여기에 뭔가가 있습니까? 프라이빗 세터를 허용하지 않는 이유가없는 것 같지만 결과 JS는 어쨌든 가시성을 강화하지 않으며 현재 대안을 더 잘 보인다.
내가 누락 된 항목이 있습니까? 그렇지 않다면 개인 설정자가없는 이유가 있습니까?
이 솔루션의 문제점은 + = (및 - =) 연산자를 허용하지 않는다는 것입니다 : this.prop + = 'abc';' – splintor
@splintor 네,하지만 다른 사람들이 값을 바꾸도록 내버려 두지는 않습니다. –
@TobyJ 샘플에 사용 된'this'에 주목하십시오. 클래스 내에서 중단 점을 설정할 수있는'+ ='및'- ='를 허용하는 것을 의미합니다. @Fenton 솔루션은 메소드 추가를 제안하지만 클래스 내에서'+ ='를 사용하여'prop'에 추가 할 수 없습니다. 방법은 [my solution] (https://stackoverflow.com/a/45909300/46635)을 참조하십시오. – splintor