extension에서 super 키워드 사용
extension에서 super 키워드 사용
Dart 분석기(analyzer)가 만들어 내는 이 진단은, extension 안에 선언된 멤버가 super 키워드를 사용했을 때 알려줘요. extension은 클래스가 아니라 슈퍼클래스가 없으니 super가 아무 의미도 없거든요.
본문
진단 메시지는 "The 'super' keyword can't be used in an extension because an extension doesn't have a superclass." 즉 "extension은 슈퍼클래스가 없기 때문에 extension 안에서는 'super' 키워드를 쓸 수 없어요."라는 뜻이에요.
설명
extension 안에 선언된 멤버가 super 키워드를 사용하면 이 진단이 나와요. extension은 클래스가 아니고 슈퍼클래스도 없어서, super 키워드가 아무 역할도 하지 않죠.
예시
다음 코드는 extension 안에서 super를 쓸 수 없는데 사용해서 이 진단이 나와요:
extension E on Object {
String get displayString => super.toString();
}
해결 방법
super 키워드를 제거하면 돼요:
extension E on Object {
String get displayString => toString();
}