Skip to content

Commit 4ea5605

Browse files
committed
🚩: readonly에 대한 개념과 사용 방법
1 parent eb09abb commit 4ea5605

File tree

1 file changed

+8
-6
lines changed

1 file changed

+8
-6
lines changed

src/index.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,21 @@
11
//접근 제한자(Access modifier) - public, private, protected / es6에서는 접근 제한자를 지원하지 않았다 하지만 ts에서는 제공해준다.
22

33
class Car {
4-
name: string = "car";
4+
readonly name: string = "car";
55
color: string;
6-
constructor(color: string) {
6+
constructor(color: string, name: string) {
77
this.color = color;
8+
this.name = name;
89
}
910
start(): void {
1011
console.log("start");
1112
}
1213
}
1314

1415
class Bmw extends Car {
15-
constructor(color: string) {
16-
super(color);
16+
constructor(color: string, name: string) {
17+
super(color, name);
18+
// 참고로 'super()'는 부모(일반적인 super가 아님)의 constructor에 접근
1719
}
1820
showName(): void {
1921
// console.log(super.name); //-> error 이유는 super는 부모 클래스 메서드를 호출 할 때 사용된다. 부모 속성에 접근하려면 this를 사용해야 한다. 즉, constructor에서 사용한 방식과 달리 this를 사용해야한다. 이미 extends Car를 상속받고 있기 때문이다.
@@ -30,6 +32,6 @@ class Bmw extends Car {
3032
}
3133
}
3234

33-
const z4 = new Bmw("black");
35+
const z4 = new Bmw("black", "test");
3436
console.log(z4.name);
35-
z4.name = "test";
37+
// z4.name = "test"; // error -> 현재 name은 readonly이기 때문에 인스턴스 생성자에서 변경을 해야한다.

0 commit comments

Comments
 (0)