私がしようとしているのは、単なるJSで書かれた関数の既存のライブラリのTypescriptでユニットテストを書くことです。私たちのページロジックはすべてJSでも同じです。これらの関数の中には、誤った型を入力として与えたときに例外を投げたものがあります。たとえば、TypescriptとJasmineを使ってTypeErrorをテストする
第2引数には、値を取得するプロパティ名が必要です。 pluck関数内には、オブジェクトの配列が渡されたことを検証する型チェックがあり、失敗した場合にはTypeErrorをスローします。
expect(function(){ Collection.pluck([{"a":1},{"a":2}], 0); }).toThrowError(TypeError);
は、しかし、私の宣言ファイルで、私はそれは、次のような定義されています:
だから、オブジェクトの正しい種類は、私はプレーンなJSのように書くでしょうに渡されたことを検証するテストを書くためのdeclare namespace Collection {
function pluck(obj: Object, propertyName: string): any;
}
だから私はTSを使用してユニットテストを書くために行くとき、私は明らかに、コンパイルエラーを取得:
だから私は義和をどのように行うのですか私はその機能に何も変更せずに欲しいですか?このファイルだけを無視するようにTSで設定できるものはありますか?
これはTSエラーを停止しますが、明示的に文字列であるかどうかをテストしているのでテストが失敗します。また、私は同じ問題を抱えているオブジェクト、配列、関数などを調べています。 –
は、回答で更新されます –
私は 'any'を使うことができると思います。 TSを使用しているときに関数の内部動作を反映していないのでちょっと変わったですが、私たちのアプリケーションでTSをどこからでも使用できるようになっていないので、定義のこの「エラー」は私以外の誰にも見られません。重要なことは、コンパイルされたJSは同じままであり、TypeErrorを投げつけ続けていることです。 –