Babel 플러그인

차세대 JavaScript 컴파일 확장

클래스 필드 선언

ES 표준에 제안 된 클래스 필드 선언(class field declarations)arrow-up-right 구문을 사용하면 클래스 문법 사용 시 편리하게 스태틱, 인스턴스 멤버를 추가해 사용할 수 있습니다. 하지만 이 기능을 현재 제안된 기술로 @babel/preset-env 사전 설정에는 포함되어 있지 않아 사용할 수 없습니다.

class Button {
  constructor(props) {
    this.props = { ...this.constructor.defaultProps, ...props };
  }
  
  // 클래스 멤버
  static defaultProps = {
    type: 'button'
  };
  
  // 인스턴스 멤버
  displayProps = () => {
    console.log(this.props);
  };
}

클래스 필드 선언을 사용하기 위해 @babel/plugin-proposal-class-propertiesarrow-up-right 플러그인 패키지를 설치합니다.

npm i -D @babel/plugin-proposal-class-properties

설치한 플러그인을 사용하기 위한 설정을 babel.config.json 파일에 추가합니다.

start 명령을 실행해 컴파일 하면, 클래스 필드 선언 구문을 호환 가능한 코드로 출력해줍니다.

비공개 멤버

ES 표준에 제안 된 비공개 멤버(private methods)arrow-up-right 구문을 사용하면 클래스 문법 사용 시 편리하게 비공개 멤버를 추가해 (JAVA의 private 접근 제어자처럼) 사용할 수 있습니다. 하지만 이 기능을 현재 제안된 기술로 @babel/preset-env 사전 설정에는 포함되어 있지 않아 사용할 수 없습니다.

클래스 필드 선언을 사용하기 위해 @babel/plugin-proposal-private-methodsarrow-up-right 플러그인 패키지를 설치합니다.

설치한 플러그인을 사용하기 위한 설정을 babel.config.json 파일에 추가합니다.

start 명령을 실행해 컴파일 하면, 클래스 필드 선언 구문을 호환 가능한 코드로 출력해줍니다.

참고

살펴본 Babel 플러그인 외에도 다양한 플러그인을 사용할 수 있습니다.

Last updated