TypeScript で一部の JS コードを書き直していて、モジュールのインポートで問題が発生しました。たとえば、toggleVisiblity
関数を書きたいとします。コードは次のとおりです。
/// <reference path="../../typings/jquery/jquery.d.ts" />
import * as $ from "jquery";
interface JQuery {
toggleVisibility(): JQuery;
}
$.fn.extend({
toggleVisibility: function () {
return this.each(function () {
const $this = $(this);
const visibility = $this.css('visibility') === 'hidden' ? 'visible' : 'hidden';
$this.css('visibility', visibility);
});
}
});
const jQuery = $('foo');
const value = jQuery.val();
jQuery.toggleVisibility();
しかし、問題は、不明な理由でインターフェイスにtoggleVisibility
追加されていないため、他のメソッド ( など) が表示されているにもかかわらず、エラーが発生することです。JQuery
Property 'toggleVisibility' does not exist on type 'JQuery'.
val
each
なぜ機能しないのですか?