で定義された関数にインデックス署名を追加する推奨方法は何ですか:私たちは、私はtypescriptですで定義された関数エルを、持っているとしましょうtypescriptです
function el():string { .. }
私はタイプ違反を削除したいと思いますが(索引を持ちません後でキーをエルに追加するときに):
el.x =() => {...}
キャストせずにこれを行うことはできますか?
これまでのところ私が見つけた最良の解決策は、別のインタフェースを定義することで、割り当てながら、それにキャスト:
interface ElFactory {
[index: string]:() => string
(): string
}
そして:
(el as ElFactory).x =() => {}
は完全にキャストを避けることは可能です?で定義されているように、関数を定義している間、それをインタフェースに関連付けるか、関数を定義する際にインデックスの署名を指定しますか?
あなたが探しているものは本当に明確ではありません。いくつか例を挙げてください。現在、私はあなたが 'Function'型を拡張したいように見えますか? – smnbbrv
関数el()として呼び出すことができ、関数メンバー 'el.x()'を持つ変数elが必要です。 – lorefnon