URLを構築する便利な関数
はじめに
この記事はTypeScript Advent Calendar 2017の1日目の記事です。
TypeScriptに限った話ではないですが、TypeScriptで書いていたものがあったので公開しておきます。
URL関係
urlとパラメータをくっつける処理いつも同じ関数使いまわしています。 同様にurlからパラメータを取ってくるのも同じ関数使いまわしています。
export class UrlUtils { public static build(url: string, params: { [key: string]: any; } = {}): string { const keys = Object.keys(params); const queryString = params ? keys.map((key: string) => [key, params[key]].map(encodeURIComponent).join('=')).join('&') : ''; return 0 < queryString.length ? url + (~url.indexOf('?') ? '&' : '?') + queryString : url; } public static getParams<T>(): T { const params: T = {} as T; if (location.search.length) { const pair = location.search.substring(1).split('&'); pair.forEach(x => { const kv = x.split('='); params[kv[0]] = kv[1]; }); } Object.keys(<T>{}).forEach(x => { console.log(x); }); return params as T; } }