在ember documentation中,它为DS.attr()方法说明了以下内容:
默认情况下,属性按原样传递,但您可以 指定一个可选类型以使值自动转换
如果你转到转换方法documentation,它会说:
您可以指定要为其运行转换 通过提供转换名称作为第一个参数来进行属性 attr方法。 Ember Data支持字符串,数字, boolean和date,它将值强制转换为JavaScript类型 匹配其名称。
所以我的问题是:显式插入属性的类型是不是很糟糕?它似乎迫使某种演员如下所述(引自下文)。所以它可能会有一些性能下降(几乎没有)。
布尔变换可以处理除true或false以外的值。该 字符串" true"或" t"在任何套管中," 1",数字1将全部 强迫为真,否则为假。
我看到插入该类型的唯一原因是为了让您更容易在模型中阅读,但这也可以在评论中完成......
答案 0 :(得分:2)
不,插入属性的类型也不错。这实际上很好。
虽然在将数据加载到商店时可能会有一些可忽略的性能下降,但在使用模型时,无论您的API可能返回什么类型,都可以获得一致类型的额外好处。
如果您只使用注释来指定类型,您可能会告诉其他开发人员在模型中期望的类型,但API可以返回它想要的任何内容。在这种情况下,预期类型和实际类型可能不匹配。
答案 1 :(得分:0)
我倾向于认为这是一种不好的做法,除非您拥有一个无法控制的非常小虫的API,并且有时会为同一字段提供具有不同类型的属性。通常,API在传递类型方面应该是可靠的。在Ember中设置类型会导致它执行类型强制,这在JavaScript中从来都不是一个好主意,因为JavaScript在类型强制上令人惊讶地可怕。
至于这可以记录您的类型,我同意这是一个好主意。但是,在现代的Ember中,TypeScript是一种更好地记录类型的工具,因为该文档实际上是强制执行的。