missing_default_value_for_parameter
引數 '{0}' 不能取值為 'null',因為其型別不相容,但隱式預設值是 'null'。
使用空安全時,請使用 'required' 關鍵字,而不是 '@required' 註解。
描述
#當可選引數(無論是位置引數還是命名引數)具有 潛在非空 型別且未指定預設值時,分析器會生成此診斷訊息。沒有顯式預設值的可選引數會有一個隱式預設值 null。如果引數的型別不允許該引數取值為 null,則隱式預設值無效。
示例
#以下程式碼會產生此診斷訊息,因為 x 不能是 null,並且未指定非 null 的預設值
dart
void f([int x]) {}此程式碼也如此
dart
void g({int x}) {}常見修復方法
#如果您想使用 null 表示未提供值,則需要將型別設定為可空
dart
void f([int? x]) {}
void g({int? x}) {}如果引數不能為 null,則要麼提供預設值
dart
void f([int x = 1]) {}
void g({int x = 2}) {}要麼將引數設為必需引數
dart
void f(int x) {}
void g({required int x}) {}