以下の内容はhttps://www.pospome.work/entry/20150726/1437926605より取得しました。


TypeScript で Argument of type string is not assignable to parameter of type Thenable

TypeScript + bluebirdで以下のエラーが出た。

error TS2345: Argument of type 'string' is not assignable to parameter of type 'Thenable<{}>'.


【追記 2015/08/21】
BlueBirdの定義ファイルを更新したらエラーが出なくなった。
# tsd update --save --overwrite

無理やり Promise を突っ込んだり、
anyを利用する必要はなかった・・・。
【追記終わり】


【追記 2015/07/27】
以下のようにすることでコンパイルできた。

resolve(Promise.resolve(true));

Promise.resolve(true) で Promise を返して、Promiseには Thenable が実装されているから、
コンパイルは通るようになっている。
これでいーのだろーか・・・。
【追記終わり】


コードは以下。

public static getHashedStr(str: string) {
    return new Promise((resolve, reject) => {
        bcrypt.hash(str, 8, function(err, hash) {
	    resolve(hash);
	});
    });
}

resolve(hash) で hash の型が string だからエラーになっている。
以下のように型を any にしてあげればコンパイルは通るようになる。

public static getHashedStr(str: string) {
    return new Promise((resolve, reject) => {
        bcrypt.hash(str, 8, function(err, hash:any) {
	    resolve(hash);
	});
    });
}

これでいーのだろーか・・・。




以上の内容はhttps://www.pospome.work/entry/20150726/1437926605より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14