unnecessary_this_alias: this를 지역 변수에 담지 말고 직접 쓰세요

unnecessary_this_alias: this를 지역 변수에 담지 말고 직접 쓰세요

unnecessary_this_alias는 타입 승격(type promotion)을 하려고 this를 지역 변수에 대입하는 패턴을 지적하는 린트(lint) 규칙이에요. 이제는 this를 직접 써도 되므로, 굳이 별칭 변수를 만들 필요가 없어요.

출처: Use 'this' directly instead of assigning it to a local variable.

본문

상세 설명

타입 승격을 수행하려고 this를 지역 변수에 대입하지 마세요. this를 직접 사용해도 멤버 접근에서 승격이 잘 동작해요.

BAD:

%experiments=this-promotion
class C {
  void m() {
    var self = this;
    if (self is D) {}
  }
}
class D extends C {}

GOOD:

%experiments=this-promotion
class C {
  void m() {
    if (this is D) {}
  }
}
class D extends C {}

활성화하기

unnecessary_this_alias 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 unnecessary_this_alias를 추가해요.

linter:
  rules:
    - unnecessary_this_alias

대신 YAML map 문법으로 린터 규칙을 설정한다면, linter > rules 아래에 unnecessary_this_alias: true를 추가해요.

linter:
  rules:
    unnecessary_this_alias: true

참고로 이 규칙은 Dart 3.14에서 추가됐어요.

더 알아보기