일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 산술연산자
- jQuery
- function
- typescript
- array
- javascript
- type
- 비교연산자
- Narrowing
- null
- html
- Number
- click
- mouseout
- boolean
- elseif
- Class
- EVENT
- if
- Chaining
- literaltype
- TAB
- 제어문
- 타입스크립트
- undefined
- 논리연산자
- 증감연산자
- Object
- slider
- methods
- Today
- Total
angsu
[코딩애플] 16.Type Script 본문
🍎 public, private 키워드로 사용제한두기
타입스크립트는 class 안에서 public 키워드를 사용가능
public이 붙은 속성은 자식 object들이 마음대로 사용하고 수정가능
class User {
public name: string;
constructor(){
this.name = 'kim';
}
}
let 유저1 = new User();
유저1.name = 'park'; //가능
(참고) public 키워드는 class 내의 prototype 함수에도 붙일 수 있음
근데 private 키워드를 붙이면 수정이 불가능해짐
무조건 class { } 중괄호 안에서만 수정 및 사용가능
class 중괄호 내부가 아니라서 class로 부터 생산된 자식 object에서도 private 붙은건 사용불가능
class User {
public name :string;
private familyName :string;
constructor(){
this.name = 'kim';
let hello = this.familyName + '안뇽'; //가능
}
}
let 유저1 = new User();
유저1.name = 'park'; //가능
유저1.familyName = 456; //에러남
어떤 속성에는 private 키워드를 추가했더니 아무데서나 수정이 불가능해짐
private 붙은 속성들은 오직 class { } 안에서만 수정이 가능
이렇게 속성을 외부에서 숨기고 싶을 때 private 키워드를 이용
실은 오리지널 자바스크립트 문법에서도 #이걸 속성옆에 붙이면 private 속성이 됨
(참고) private 키워드는 class 내의 함수에도 붙일 수 있음
🍏 Q. private 부여된 속성을 class 밖에서 수정해야할 경우?
1. private 속성을 수정하는 함수를 class 안에 만들어서 2. 함수를 실행시키면 됩니다.
🍏 Q. private 이걸 어따씀?
A. 개발하다보면 소중하게 지켜주고 싶은 중요한 변수나 속성들이 있습니다.
예를 들면 위의 예제에선 familyName 이런건데 이걸 외부에서 실수로 수정하거나 그러면 큰일날 것 같은 그런 속성들이요.
이걸 외부에서 실수로 수정하지 않도록 지켜주고 싶으면 private를 붙여보시길 바랍니다.
그리고 이걸 쓰면 함수를 만들어서 수정해야하니 약간의 안전장치를 더해서 개발이 가능합니다.
개발이 귀찮아지지만 버그를 예방해주는 키워드이며
react-redux 이런거 하다보면 매번 보게될 패턴입니다.
- 코딩 애플 -
🍎 public, private 키워드 쓰면 이런 것도 가능
constructor 안에서 this.name = name 이런걸 생략 가능
class Person {
name;
constructor ( name :string ){
this.name = name;
}
}
let 사람1 = new Person('john')
class Person {
constructor ( public name :string ){
}
}
let 사람1 = new Person('john')
위 두개의 코드는 같은 역할을 하는 코드
"constructor 파라미터에 public 붙이면 this.name = name 이거 생략가능하다" 라는걸 참고해주시면 되며
이제 Person으로부터 새로 생산되는 object들은 name 속성을 가질 수 있음
'IT > Type Script' 카테고리의 다른 글
[코딩애플] 17.Type Script (0) | 2024.04.11 |
---|---|
[코딩애플] 15.Type Script (0) | 2024.04.10 |
[코딩애플] 14.Type Script (0) | 2024.04.09 |
[코딩애플] 13.Type Script (0) | 2024.04.08 |
[코딩애플] 12.Type Script (0) | 2024.04.07 |