TS에서 언더바( _ ) 사용하기

조민호·2023년 1월 22일
0

JS나 TS에서 사용되는 언더바는 2가지의 의미로 사용된다



💡 개발자들 사이에서 통상적으로 사용된다는 의미일 뿐, 절대 추가적인 기능이 있는 것은 아니다
  1. 필요 없는 매개변수를 의미
**// map의 첫번째 매개변수는 사용하지 않는다는 것을 의미**
let arr=new Array(5).fill().map((_,index)=>(index+1))
 // [ 1, 2, 3, 4, 5 ]
**// 첫번째 매개변수는 사용하지 않는다는 것을 의미**
function normalFunc(_, id) {
  // ...
}
  1. 접근제어자 private을 의미

JS의 클래스 경우, 옛날에는 접근제한자(public, private)이 없었으므로

private 한 멤버변수나 메소드를 의미하기 위해서 사용되었고 접근제한자가 JS에도 나온 지금도 그렇게 쓰이고 있습니다

이렇게 사용하면 변수의 접근 범위를 바로 알수 있으니 편리합니다

그렇지만 접근제한자(public, private)가 현재 JS에 적용된 지금은.

이미 기능적으로 private가 동작하기 때문에

무조건 모든 private에 _ 를 붙이진 않습니다


예를 들어, StackImpl 클래스의 capacity , size멤버변수의 경우 private으로 사용되고 있습니다

class StackImpl implements Stack {

  private _size: number = 0;

	private capacity: number

  //스택의 전체 크기
  constructor(capacity: number) {
		this.capacity=capacity
	}

  //외부에서 접근하는 용도로 getter 생성
  get size() {
    return this._size;
  }

	...

}
  • 일반적인 private 변수인 capacity는 _ 를 붙이지 않고 그냥 private접근제어만 사용합니다
  • 언더바를 사용하는 size변수는 내부에서 private으로 사용하는 변수 이름과 이걸 외부에서 접근하는 getter변수 이름이 같습니다 이럴 경우에 private 멤버 변수 에다가 언더바( _ )를 사용합니다

    클래스 내부에서만 접근하는 private 변수는 _변수명으로 선언해서 사용하고 이걸 외부에서 접근할 때는 getter로 사용하는 것입니다

    💡 private size 와 getter의 size 이렇게 이름이 같을때 pirvate 변수에 언더바를 붙이는 것입니다
profile
웰시코기발바닥

0개의 댓글