널 타입은 with로 믹스인할 수 없어요
널 타입은 with로 믹스인할 수 없어요
nullable_type_in_with_clause 진단은 with 절에 널 타입의 mixin을 지정했을 때 분석기가 알려 주는 메시지예요. 널 타입을 믹스인하는 건 의미가 없어서, "널 타입은 믹스인할 수 없어요"라고 짚어 주는 거죠.
본문
설명 (Description)
분석기는 클래스나 mixin 선언이 with 절을 가질 때, 그 mixin 뒤에 ?가 붙어 있으면 이 진단을 만들어 내요.
널 mixin을 지정하는 건 유효하지 않아요. 그렇게 해도 아무 의미가 없거든요. with 절을 담은 클래스가 상속받는 인터페이스나 구현이 달라지지 않기 때문이에요.
다만 mixin의 타입 인자로는 널 타입을 쓰는 게 가능해요. 예를 들어 class A with B<C?> {}처럼요.
예시 (Example)
아래 코드는 A?가 널 타입인데 널 타입은 with 절에 쓸 수 없어서 이 진단이 발생해요.
mixin M {}
class C with M? {}
흔한 해결책 (Common fixes)
타입에서 물음표(?)를 떼면 돼요.
mixin M {}
class C with M {}
더 알아보기
- Null safety — 널 안전성이 어디까지 적용되는지가 나와요.
- Mixins — dart.dev —
with절과 mixin 문법을 다루는 문서예요. - 모든 진단 목록 — 분석기가 알려 주는 다른 진단도 살펴보세요.