[解決済み] 型付き関数の配列
2023-08-16 06:30:05
質問
TypeScriptで、静的型付けされた関数の配列を宣言することが可能かどうか、悩んでいます。
例えば、こんなことができるんです。
foo: (data:string) => void = function (data) {};
しかし、fooを文字列を受け取って何も返さない関数の配列にしたい場合、どうすればよいのでしょうか?
foo: (data:string) => void [] = [];
TypeScriptはこの関数を、文字列を受け取ってvoidの配列を返す関数だと考えているため、うまくいかない。また、関数を括弧でくくるのも気に入らないようだ。
何かいい方法はないでしょうか?
回答 : 下記のmohamedに感謝し、TypeScript Playgroundで動作する例です。
class whatever {
public foo: { (data: string): void; }[] = [];
dofoo() {
for (var i=0; i < this.foo.length; i++) {
this.foo[i]("test");
}
}
}
var d = new whatever();
d.foo.push(function(bar){alert(bar)})
d.foo.push(function(bar){alert(bar.length.toString())})
d.dofoo();
どのように解決するのですか?
あなたは、これを 言語仕様 セクション 3.6.4 にあります。
foo: { (data: string): void; } []
関連
-
[解決済み] TypeScriptでパラメータとして強く型付けされた関数は可能か?
-
[解決済み] タイプスクリプトのパイプ(|)の意味とは?
-
[解決済み] Promiseの型はどのようにアンラップするのですか?
-
[解決済み] Typescript で Enum を制限付きキータイプとして使用する
-
[解決済み] Angular 2 カスタムフォーム入力
-
[解決済み] TypeScriptのInterfacesでgetter/setterを使用することは可能ですか?重複
-
[解決済み] types/packageでインストールしたTypeScriptの型定義が正しくない場合に上書きする方法
-
[解決済み] 型{ [key: string]: boolean; }は何を意味するのでしょうか?
-
[解決済み] なぜ `downlevelIteration` はデフォルトでオンになっていないのですか?
-
[解決済み] TypeScriptのプライベートな「関数
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Angular 2でアプリ起動時にサービスを実行する方法
-
[解決済み] TSにおける文字列列列挙型と文字列リテラル型の相違点
-
[解決済み] TypeScript Mapファイルとは?
-
[解決済み] TypeScriptで単一のプロパティをオプションにする
-
[解決済み] typescript の module.exports
-
[解決済み] types/packageでインストールしたTypeScriptの型定義が正しくない場合に上書きする方法
-
[解決済み] vs-codeで複数のtsconfigファイルを使用するには?
-
[解決済み] ESLint - TypeScriptの "no-unused-vars "を設定する。
-
[解決済み] npmスクリプトを使用して、tsc -watch && nodemon --watchを実行する方法はありますか?
-
Angular 2:ObservableをPromiseに変換する