2017-11-16 5 views
2

Ich bin ein wenig neu zu Typescript, und ich kann Typings für 90% meiner Codebasis tun. Aber wenn es um Ruhe/Verbreitung geht, bin ich absolut ratlos. Ich zufällig auf diese heute in unserem Code (ich dies nicht schreiben), aber ich habe herausfinden, dass es nicht funktioniert:Typescript Objekt Rest Typisierung in Argument

interface searchClient { 
    searchForValues({ 
    name, 
    query, 
    ...qp, 
    }: { 
    name: string; 
    query: string; 
    qp: QpInterface; //???this part doesn't work 
    }): Promise<any>; 
} 

interface QpInterface { 
    page?: number; 
    hits?: number; 
    attributes?: string; 
} 

Es funktioniert nicht, weil qp wird, um den Namen des Schlüssels in der Benennung Tippen, während, was ich tippen möchte, ist der ...qp Teil. Jedes Schlüssel/Wert-Paar in ...qp wird vom QpInterface eingegeben.

Hier ist ein Beispielfunktionsaufruf:

this.searchClient.searchForValues({ 
    name: 'title', 
    query: 'little sheep', 
    page: 5, 
    hits: 2 
}); 

ich nicht viel dazu auf die Dokumentation finden konnten. Ich habe versucht, ...qp: QpInterface; und ...QpInterface; setzen, die nicht funktioniert haben. Was ist der beste Weg, ...qp in das Argument einzugeben?

Antwort

Verwandte Themen