Typescript 如何使用Q.Promise<;字符串>;作为字符串?

Typescript 如何使用Q.Promise<;字符串>;作为字符串?,typescript,promise,q,Typescript,Promise,Q,我有返回字符串Q的函数 module test { export function promiseString (): Q.Promise<string> { var deferred = Q.defer<string>(); deferred.resolve('someMessage'); return deferred.promise; } } 选项2: Q.fcall(promiseString)

我有返回字符串Q的函数

module test {

    export function promiseString (): Q.Promise<string> {
        var deferred = Q.defer<string>();
        deferred.resolve('someMessage');
        return deferred.promise;
    }

}
选项2:

Q.fcall(promiseString).then(function (message: string) {
    //  compilation error about incompatible parameters     
});
Q.fcall(promiseString).then(function (promise: Q.Promise<string>) {
    console.log(typeof promise);    //  output string
    //  but i can't use promise as string further
});
Q.fcall(promiseString)。然后(函数(promise:Q.promise){
console.log(承诺的类型);//输出字符串
//但我不能再把承诺当作绳子了
});

如果函数总是返回承诺(延迟或其他),则不必使用
Q.fcall调用它。简单地说:

promiseString().then(...)

如果函数总是返回承诺(延迟或其他),则不必使用
Q.fcall
调用它。简单地说:

promiseString().then(...)

不要使用
Q.fcall
,这是用于回调的!第二个选项也应该给出一个类型错误-
那么
回调参数永远都不是承诺。不要使用
Q.fcall
,这是用于回调的!第二个选项也应该给出一个类型错误-
,那么
回调参数永远不会被接受。