1

ayant:d.ts de code Visual définissent Promise résolution de type

// api.js 
export function getLayout(){ 
    return axios.get('/api/layout').then(res => res.data) 
} 
// api.d.ts 
declare interface JSONResponse { 
    meta: object, 
    data: Array<Field> 
} 
export declare function getLayout():Promise<any> // Promise<any>.then<JSONResponse>?? 

je veux VSCode suggérer la

getLayout().then(json => { 
    json.data // suggest data is of type Array<Fields> 
}) 

suivant est-ce possible?

Répondre

1

Si je comprends bien, cela répondra à vos besoins.

// api.d.ts 
declare interface JSONResponse { 
    meta: object, 
    data: Array<Fields> 
} 

export declare function getLayout(): Promise<JSONResponse> 

// client.ts 
var data = getLayout().then((json) => { 
    json.data; 
}); 

Voici une image de la suggestion faite dans la cour de récréation dactylographiée:

enter image description here

+0

J'ai essayé que la première fois et je ne recevais pas la suggestion. Cela fonctionne bien maintenant. Étrange. –

+1

cela ne fonctionnait pas parce que le getLayout réel (getLayout (nom: chaîne): Promise ) nom de paramètre attendu. En l'appelant sans un nom, l'intellisense n'a pas fonctionné correctement (ou comme je m'y attendais) –