argument_type_not_assignable
引數 '{0}' 的型別無法賦值給引數 '{1}' 的型別。{2}
描述
#當引數的靜態型別無法賦值給相應形參的靜態型別時,分析器會產生此診斷訊息。
示例
#以下程式碼會產生此診斷訊息,因為 num 型別無法賦值給 String 型別
dart
String f(String x) => x;
String g(num y) => f(y);常見修復方法
#如果可能,重寫程式碼,使其靜態型別可賦值。在上面的示例中,你可能可以更改引數 y 的型別。
dart
String f(String x) => x;
String g(String y) => f(y);如果此修復方法不可行,則新增程式碼來處理引數值不是所需型別的情況。一種方法是將其他型別強制轉換為所需型別。
dart
String f(String x) => x;
String g(num y) => f(y.toString());另一種方法是新增顯式型別測試和備用程式碼。
dart
String f(String x) => x;
String g(Object y) => f(y is String ? y : '');如果你認為引數的執行時型別始終與形參的靜態型別相同,並且願意承擔如果判斷錯誤可能在執行時丟擲異常的風險,那麼可以新增顯式型別轉換。
dart
String f(String x) => x;
String g(num y) => f(y as String);