diff --git a/src/jsutils/find.js b/src/jsutils/find.js index ba608d90b3..71e03bb390 100644 --- a/src/jsutils/find.js +++ b/src/jsutils/find.js @@ -7,13 +7,23 @@ * @flow strict */ -export default function find( +declare function find( list: $ReadOnlyArray, predicate: (item: T) => boolean, -): ?T { - for (let i = 0; i < list.length; i++) { - if (predicate(list[i])) { - return list[i]; +): T | void; + +/* eslint-disable no-redeclare */ +// $FlowFixMe +const find = Array.prototype.find + ? function(list, predicate) { + return Array.prototype.find.call(list, predicate); } - } -} + : function(list, predicate) { + for (let i = 0; i < list.length; i++) { + const value = list[i]; + if (predicate(value)) { + return value; + } + } + }; +export default find;