type List = ArrayLike type PropertyName = string | number | symbol interface Dictionary { [index: string]: T } export function fromPairs( pairs: List<[PropertyName, T]> | null | undefined ): Dictionary export function fromPairs( pairs: List | null | undefined ): Dictionary { const result = {} if (pairs == null) { return result } for (const pair of pairs) { result[pair[0]] = pair[1] } return result }