知りたいこと
以下のようなinterfaceを定義します。
ts
1interface Itest { 2 (param1: string, param2: number): boolean; 3}
このinterfaceは以下のように使用することができます。
ts
1const testF: Itest = (param1, param2) => { 2 return true; 3};
どうしてこのように使用できるのかがわかりません。
typescriptのinterfaceの実装方法について自分でも調べましたが、
このようなinterface内で無名関数のようなものを定義する実装方法について言及されている記事は見つかりませんでした。
また、Itestが以下のような定義の場合、hogeはどのように設定することになるのでしょうか。
ts
1interface Itest { 2 (param1: string, param2: number): boolean; 3 hoge: string; 4}
質問の動機
Reactの理解を深めようと思いReact.FunctionComponentの型定義を読んでいたところ、以下のような実装になっていました。
ts
1 interface FunctionComponent<P = {}> { 2 (props: PropsWithChildren<P>, context?: any): ReactElement<any, any> | null; 3 propTypes?: WeakValidationMap<P>; 4 contextTypes?: ValidationMap<any>; 5 defaultProps?: Partial<P>; 6 displayName?: string; 7 }
2行目の(props: PropsWithChildren<P>, context?: any): ReactElement<any, any> | null;
の挙動について調べていましたが自分では解決できず、質問に至りました。
どなたかご教示いただくか、もしくはこの定義方法について言及されているドキュメントのリンクを教えてもらえると幸いです。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー