重构代码的主要目的可能是删除强制转换,而不是删除轻微的重复。
此外,您不需要走得太远any
,因为您要查找的操作来自数组,因此您可以使用any[]
至少让您知道的操作。
我通过允许将两个参数传递给我的方法来扩展 Robert C Martin 关于参数数量的规则:) - 参数按照方法名称暗示的顺序,将触发器添加到数组。
function addTriggerToArray(trigger: any, triggerArray: any[]) {
triggerArray.push(trigger);
}
$.each(obj.triggers, function (index, value) {
addTriggerToArray(Trigger.objectToTrigger(value), sc.triggers);
});
$.each(obj.notStartTriggers, function (index, value) {
addTriggerToArray(Trigger.objectToTrigger(value), sc.notStartTriggers);
});
要更新现有项目,您将使用...
function updateTrigger(trigger: any, index: number, triggerArray: any[]) {
triggerArray[index] = trigger;
}
$.each(obj.triggers, function (index, value) {
updateTrigger(Trigger.objectToTrigger(value), index, sc.triggers);
});
$.each(obj.notStartTriggers, function (index, value) {
updateTrigger(Trigger.objectToTrigger(value), index, sc.notStartTriggers);
});