В дополнение к другим ответам я нашел другой способ сделать это.
return MyRecord(
id: jsonObj['id'] ?? Null,
name: jsonObj['name'] ?? Null,
description: jsonObj['description'] ?? Null
);
Не уверен, что могут быть потенциальные побочные эффекты в зависимости от того, какие типы полей вы пытаетесь назначить, но до сих пор это работает для всего, что я пробовал.
Преимущество этого метода в том, что он менее многословен, чем
return MyRecord(
id: jsonObj['id'] ?? (throw ArgumentError("id is required"),
name: jsonObj['name'] ?? (throw ArgumentError("nameis required"),
description: jsonObj['description'] ?? (throw ArgumentError("description is required")
);
, но исключение по-прежнему вызывается в фактическом коде назначения, что сводит к минимуму риск того, что вы забудете добавить / изменить имена полей вотдельный чек.