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에서 추가됐어요.