struct 클래스 필드에 타입이 명시되지 않은 경우

struct 클래스 필드에 타입이 명시되지 않은 경우 (missing_field_type_in_struct)

StructUnion을 상속받는 클래스의 필드에 타입 어노테이션이 없을 때 나오는 진단이에요. 모든 필드는 명시적인 타입을 가져야 하고, 그 타입은 intdouble, Pointer 또는 Struct·Union의 하위 클래스 중 하나여야 해요.

출처: Fields in struct classes must have an explicitly declared type of 'int', 'double' or 'Pointer'.

본문

이 진단은 StructUnion을 상속받는 클래스의 필드에 타입 어노테이션이 없을 때 분석기가 만들어내요. 모든 필드는 명시적인 타입을 가져야 하며, 그 타입은 int, double, Pointer 또는 Struct·Union의 하위 클래스 중 하나여야 해요.

FFI에 대해 더 알고 싶다면 C interop using dart:ffi 문서를 참고하세요.

예시

아래 코드는 필드 str에 타입 어노테이션이 없어서 이 진단이 나와요.

import 'dart:ffi';

final class C extends Struct {
  external var str;

  @Int32()
  external int i;
}

해결 방법

필드의 타입을 명시적으로 지정해 주세요.

import 'dart:ffi';

import 'package:ffi/ffi.dart';

final class C extends Struct {
  external Pointer<Utf8> str;

  @Int32()
  external int i;
}

더 알아보기