Flutter,我可以为命名参数传递一个 Map

Lpc*_*ark 12 android coding-style ios dart flutter

如果我有需要传递的命名参数级别,我不想为任何方法键入命名参数,例如,

BaseText(text,options) LargerText(text,options) MenuText(text,options)

最终我需要将它传递给具有不同默认值的文本小部件,但是要写出所有参数,并将每个参数向下传递似乎需要做很多工作,我该如何解决这个问题。

在 JS 我会做

LargerText(text,options){
   options = {...defaultOptions,...options}
   return BaseText(text,options)
}
Run Code Online (Sandbox Code Playgroud)

Ale*_*kin 6

如果 Dart 支持将映射扩展为命名参数,那么这要么会降低类型安全性,要么会引入开销检查。

使用物体来解决这个问题。这正是对象的用途。每次调用时,编译器都会检查该类是否是该方法所期望的类以及是否存在所有字段。地图上不会有这个。