'this' 잘못된 참조 진단: this는 인스턴스 메서드나 generative 생성자 안에서만 쓸 수 있어요
'this' 잘못된 참조 진단: this는 인스턴스 메서드나 generative 생성자 안에서만 쓸 수 있어요
예약어 this는 인스턴스 메서드, generative 생성자, 또는 late 인스턴스 필드 선언의 초기화 문맥에서만 정의돼요. 그 밖의 곳에서 쓰면 Dart 분석기가 invalid_reference_to_this 진단을 내보내요.
본문
설명
분석기는 this가 인스턴스 메서드나 generative 생성자 밖에서 사용되었을 때 이 진단을 만들어요. 예약어 this는 인스턴스 메서드, generative 생성자, 또는 late 인스턴스 필드 선언의 초기화라는 문맥에서만 정의되기 때문이에요.
예시
다음 코드는 v가 최상위 변수이기 때문에 이 진단을 만들어요.
C f() => this;
class C {}
흔한 해결 방법
this 자리에 적절한 타입의 변수를 사용하고, 필요하면 그 변수를 선언해 주세요.
C f(C c) => c;
class C {}