我正在为API编写验证库,我需要检查所需字段的匿名数据结构.直接引用fields(if(anon.field)...)是否安全,或者这会导致静态目标出现问题?Reflect.hasField直接现场访问之间是否存在速度差异?
两种检查都有不同的目的.if (anon.field == null)如果已定义字段,则可以执行此操作.因此,如果该字段不在结构上或不确定(例如,如果您使用@:optional typedef中的字段),则可能会出现运行时错误.
那是哪里 Reflect.hasField进来的地方; 它会检查它是否实际定义.因此,如果结构具有字段,则可以检查其中的任何内容.
如果你的目标是Javascript,Reflect.hasField那就像Object.hasOwnProperty.