問題タブ [function-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
101 参照

typescript - Typescript:クラス関数を渡すときにクラス関数がバインドされていることを確認する方法

私はタイプスクリプトの初心者であり、 docs--noImplicitThisからコンパイルフラグについて学んでいますが、期待どおりに動作しないように見えるケースに遭遇しました.誰かが私が正しくできる方法を説明してください.タイプ チェック バウンド関数:

したがって、ドキュメントと同様の例を使用してください。次のコードでは、正しく実行されているにもかかわらず、型エラーが発生します (型チェックがスキップされた場合)。

関連する 2 つの問題があります。

まず、上記のコードで:

関数が正しくバインドされているにもかかわらずf()runner関数で型エラーが発生します。this

The 'this' context of type 'void' is not assignable to method's 'this' of type 'Deck'


runner次に、コードが型チェックに合格するようにするには、関数を次のように変更してコードを変更します。

しかし、(誤って) に渡された関数のバインドを解除した場合runner:

コードが正しく実行されないため、本当にコンパイル エラーが必要な場合でも、コンパイル エラーは発生しません。


タイプスクリプトがクラス関数を渡す前に確実にバインドする方法はありますか?