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); }); }); }
これでいーのだろーか・・・。