interface를 사용할 때 private 사용방법은?
impolements러 interface를 받아 class를 만들때 private이 안되는 오류를 보여주셨는데요
interface를 사용하지 않고 그냥 class안에서 type을 지정하는 방법, abstract class를 이용하는 방법 모두 이해됬습니다.
하지만 interface를 사용하면 private, protected 사용이 불가한 것인지 잘 모르겠어서 질문을 올립니다.
구글링해본결과
class내에 속성으로 만들고 getter, setter를 이용하는 것으로 우회하는 방법을 사용하더라구요.
이렇게 했을 때 private의 기능인 class 밖에서는 호출 할 수 없다고 위반되는 결과가 나옵니다.
어떤식으로 해결 해야 할까요?
interface Interface {
readonly a: string;
b: number;
}
class TSClass implements Interface {
private readonly _a: string = "init";
get a() {
return this._a;
}
protected _b: number = 1;
get b() {
return this._b;
}
set b(v: number) {
this._b = v;
}
c: string = "기본값이 public";
method() {
console.log(this._a);
console.log(this._b);
console.log(this.c);
}
}
class inheritClass extends TSClass {
method() {
console.log(this._a); // error
console.log(this.a); // 가능..
console.log(this._b);
console.log(this.b);
console.log(this.c);
}
}
new inheritClass()._a; // error
new inheritClass().a; // 가능...
new inheritClass()._b; // error
new inheritClass().b; // 가능..
new inheritClass().c;
답변 1
데코레이터가 현재도 자주 쓰이는 문법인가요?
0
78
2
유틸리티 타입 실제로 구현은 못해도 하나씩 외우면 실무할 때 지장 없겠죠?
0
65
1
매핑 타입은 type에서밖에 안된다고 하네요?
0
64
2
자바에서의 오버로딩과 같은 개념이라고 생각해도 되나요?
0
69
2
filter 함수 반환 타입 네로잉 질문
0
71
2
map<U>(callbackfn: ....) 할때 U는 왜 여기 있는거에요??
0
45
2
ts 컴파일을 위한 type 라벨링 부분
0
46
1
concat 함수 타입 구현 중 질문 있습니다!
0
100
2
filter 메소드 질문
0
53
1
forEach 제네릭 관련 문의
0
60
1
타입 추론 시 가장 넓은 범위로 추론이 되는 건가요?
0
163
1
enum이 javascript로 트랜스파일링될때 사라진다하셨는데요
0
207
1
함수 파라미터 타입 정의 시 ...args: any[]와 ...args: any 의 차이
0
223
1
Flat type에서 ReadonlyArray 타입을 사용하는 이유?
0
157
1
bind type 질문
1
148
1
Lowercase type 관련 질문
0
152
1
key-value 타입 자동추론 질문드립니다
0
265
1
타입스크립트 교과서, p131
0
265
1
타입스크립트 교과서 p122 forEach 메서드 질문
0
231
1
타입스크립트 교과서 p116 , 코드에러남
1
269
1
타입스크립트 교과서 p112 , 코드가 안읽힙니다..
0
265
1
타입스크립트 교과서 p83
1
184
1
타입스크립트교과서 p39 쪽 코드가 이해가 안되요
1
227
1
class 에서 ts의 private vs js의 private field( # )
0
338
1





