// Functional programming approach to parsing query strings in Typescript/ES6. function parseQueryString(search: string) { return (search.startsWith('?') ? search.substring(1) : search) .split('&') .map(str => { const eqIdx = str.indexOf('='); if (eqIdx <= 0 || eqIdx >= str.length - 1) { return {}; } const key = str.substring(0, eqIdx); const value = str.substring(eqIdx + 1, str.length); return {[key]: value}; }) .reduce((prev, next) => ({...prev, ...next})); }