deprecated_optional

deprecated_optional

@Deprecated.optional로 표시된 선택적 매개변수에 인자를 넘기지 않고 생략하면 이 진단이 나와요. 이 어노테이션은 이제 그 매개변수에 인자를 안 넘기는 게 지양할 동작이며, 곧 필수 매개변수가 될 것임을 뜻해요. 고치는 방법을 함께 볼게요.

출처: deprecated_optional

본문

@Deprecated.optional 어노테이션이 붙은 선택적 매개변수에 인자를 생략하고 넘기지 않으면 analyzer가 이 진단을 만들어요. 이 어노테이션은 해당 매개변수에 인자를 생략하는 것이 deprecated이며, 곧 필수 매개변수가 될 것임을 나타내요.

예시

라이브러리 p@Deprecated.optional로 표시된 선택적 매개변수를 가진 함수를 정의한다고 해볼게요.

void f({@Deprecated.optional() int a = 0}) {}

다음 코드는 호출할 때 매개변수 a에 값을 넘기지 않기 때문에 이 진단이 나와요.

import 'package:p/p.dart';

void g() {
  f();
}

일반적인 해결 방법

@Deprecated.optional 어노테이션에 있는 구체적인 안내를 따라주세요. 안내가 없다면 해당 매개변수에 알맞은 인자를 넘기면 돼요.

import 'package:p/p.dart';

void g() {
  f(a: 0);
}

기본값을 사용하면 코드의 현재 동작을 그대로 유지할 수 있어요.

더 알아보기