2017-07-16 12 views
1

私は2つのオブジェクトを持っています。私はこれらの2つを組み合わせた3番目のオブジェクトを作りたいと思います。Angular/TypeScriptで2つのURLSearchParamsを組み合わせるにはどうすればよいですか?

例えば、私は

let params1 = new URLSearchParams(); 
params1.set('page', 'one'); 
params1.set('size', 'hundred'); 

let params2 = new URLSearchParams(); 
params2.set('orderBy', 'size'); 
params2.set('order', 'asc'); 

let params = params1 + params2; // yes, that's illegal, but how to do that? 

かもしれないと私はのparamsオブジェクト内のすべての4つのパラメータを持っている必要があります。

私は.entries()メソッドを使用して、オブジェクトのキーと値のペアを反復処理したかったが、活字体は、このメソッドを非表示にします。 TSでURLSearchParamsを反復処理するいかなる可能なオプションはありませんのようなので、それが見えます

interface URLSearchParams { 
    append(name: string, value: string): void; 
    delete(name: string): void; 
    get(name: string): string | null; 
    getAll(name: string): string[]; 
    has(name: string): boolean; 
    set(name: string, value: string): void; 
} 

declare var URLSearchParams: { 
    prototype: URLSearchParams; 
    new (init?: string | URLSearchParams): URLSearchParams; 
}; 

:ここで私はlib.dom.d.tsファイルで見つかったものです。何か案は?

+0

を参照してください。例を与えてください – Aravind

答えて

1

あなたはappendAll()メソッドを使用することができますが、あなたが正確に何を意味するか組み合わせることにより、以下のようDocs

let params1 = new URLSearchParams(); 
params1.set('page', 'one'); 
params1.set('size', 'hundred'); 

let params2 = new URLSearchParams(); 
params2.set('orderBy', 'size'); 
params2.set('order', 'asc'); 
let params=new URLSearchParams(); 
params.appendAll(params1); 
params.appendAll(params2); 
console.log(params) 

LIVE DEMO

+0

ありがとう、それは完全に動作します。私は以前に '@ angular/http'からURLSearchParamsをインポートしていませんでした。そのため、定義は' lib.dom.d.ts'から行われました。 –

関連する問題