[解決済み] エラー 型に呼び出し署名がない式は呼び出せない
2022-06-08 02:28:35
質問
私はtypescriptの初心者で、2つのクラスを持っています。親クラスに私は持っています。
abstract class Component {
public deps: any = {};
public props: any = {};
public setProp(prop: string): any {
return <T>(val: T): T => {
this.props[prop] = val;
return val;
};
}
}
子クラスの中に
class Post extends Component {
public toggleBody: string;
constructor() {
this.toggleBody = this.setProp('showFullBody');
}
public showMore(): boolean {
return this.toggleBody(true);
}
public showLess(): boolean {
return this.toggleBody(false);
}
}
showMoreとShowLessの両方で、"Cannot invoke an expression whose type lacks a call signature."というエラーが発生します。
しかし、setProp が返す関数は呼び出し署名を持っていると思うのですが?関数の型付けについて何か重要なことを誤解しているような気がしますが、それが何なのかわかりません。
ありがとうございます。
どのように解決するのですか?
この関数が返す関数には呼び出し署名がありますが、それを完全に無視するように、Typescript に
: any
を追加することで、Typescript にそれを完全に無視させました。
関連
-
Vueはランニングライト形式のテキストを水平方向にスクロールする機能を実装している
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】JavaScriptの配列でforEachが関数でない不具合
-
[解決済み】React Nativeアプリをターミナルから実行するとエラーが発生する(iOS)
-
[解決済み】React Uncaught Error: 対象コンテナが DOM 要素でない [重複]。
-
[解決済み】 Uncaught TypeError : undefined のプロパティ 'replace' を読み取れない In Grid
-
nodejs unhandledPromiseRejectionWarning メッセージ
-
フロントエンド null のプロパティ 'disabled' を読み取れない 問題が解決された
-
モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory, scandir 'D:\.... \node_modules
-
[解決済み] コンストラクトシグネチャを持つインターフェースはどのように機能するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
vue3レスポンシブ対応のためのsetup+ref+reactive
-
Vueがechartsのtooltipにクリックイベントを追加するケーススタディ
-
Vueにシンプルなメモ帳機能を実装
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vueが定義するプライベートフィルタと基本的な使い方
-
[解決済み] Error : 未定義のプロパティ 'map' を読み取ることができません。
-
[解決済み】ERROR エラーです。スイッチのname属性が指定されていないフォームコントロールの値アクセッサがない
-
[解決済み】ReactJSでエラー発生 Uncaught TypeError: Super expression は null か関数でなければならず、undefined ではありません。
-
[解決済み】<select>で現在選択されている<option>をJavaScriptで取得するにはどうすればよいですか?
-
OSSアップロードエラーを解決する: net::ERR_SSL_PROTOCOL_ERROR