JQuery promises has a complex structure in a specific definition file, because jQuery promises themselves have a complex structure / history. You should help the compiler choose the right overload by providing a general argument, rather than relying on the output:
.then<string>(() =>
{
return first();
})
, promises, , Q.js. Q Promises/A +, ES6 promises, , inferencing TypeScript, , Q.all.