rxjs 5を使用してNode.jsサーバーをTypeScriptに書き込もうとしましたが、fs.readFile
をrxjs形式に変換するとエラーが発生しました。私は'utf-8'
TypeScriptのObservable.bindNodeCallback(fs.readFile)からobservableを作成できません
Supplied parameters do not match any signature of call target.
二番目のパラメータを追加した場合しかし、私のエディタは活字体のエラーを報告し、次のコードは、 に活字体
に// This is a JavaScript example from the official documentation. It should
// also work at the TypeScript envrionment.
import * as fs from 'fs';
import { Observable } from 'rxjs';
let readFileAsObservable = Observable.bindNodeCallback(fs.readFile);
// This is the line that throws the error.
let result = readFileAsObservable('./roadNames.txt', 'utf8');
result.subscribe(x => console.log(x), e => console.error(e));
を働くだろう期待して私はfs.readFile()
を使用する方法についてのガイドを探してみてくださいrxjsとTypeScriptでは、多くの運がありません。
機能のオーバーロードを実行するうまい方法。ありがとう! –
これは、TypeScriptの性質(間違いなくタイプされている)、またはrxjsの設計上の欠陥の結果として考えてください。 –
私の視点からは、設計上の欠陥ではありません。関数にオーバーロードがある場合、どちらを推測できるかは分かりません。私は、TypeScriptは、パラメータ型を推論するかなり良い仕事をすると思います。矢印関数を使うもう一つの利点は、特定のコンテキストでメソッドを呼び出す必要があるときに 'bind'を使わないようにすることです。 'bind'は' any'を返し、その後TypeScriptの推論はうまく混乱します。 – cartant