実現したいこと
Eslintのエラーが出ました。
プログラムが動かなくなるわけではないのですが、直したいです。
前提
別のサイトを参考に見ながら簡単なtodoアプリを作ったのですが、eslintが反応しました。(見てたサイトはeslint使ってません)、直す方法を教えてください。
発生している問題・エラーメッセージ
Don’t use `Function` as a type. The `Function` type accepts any function-like value. It provides no type safety when calling the function, which can be a common source of bugs. It also accepts things like class declarations, which will throw at runtime as they will not be called with `new`. If you are expecting the function to accept certain arguments, you should explicitly define the function shape @typescript-eslint/ban-types
該当のソースコード
Form
1 2import React from 'react'; 3 4interface TodoProps { 5 open: boolearn 6 setOpen: Function 7} 8 9 export const Form = ({ open, setOpen, doYes, doNo }: TodoProps) => { 10 11/*略*/ 12 13 return ( 14 <div> 15 <Button onClick={/**略*/}> 16 Submit 17 </Button> 18 </div> 19 ) 20 } 21 22export default Form 23
Top
1import React, { useState } from 'react'; 2import Modal from 'react-modal' 3 4const [open, setOpen] = useState(false); 5 6const start = () => { 7 setOpen(false) 8 } 9 10 export const Top = () => { 11 12/*略*/ 13 14 return ( 15 <div> 16 <button onClick={() =>start()}>DoForm</button> 17 <Modal isOpen={open} > 18 <Form open={open} setOpen={setOpen} /> 19 </Modal> 20 </div> 21 ) 22 } 23 24export default Form
試したこと
調べたのですが、今回のような関数は(いわゆるコールバック関数?)
戻り値のvoidを指定したりしたらよいとありましたが、具体的に自分のケースだとどのように落とし込んだらいいのかわかりませんでした。
以下NGパターン。エラーが消えませんでした。
Top
1import React, { useState } from 'react'; 2import Modal from 'react-modal' 3 4const [open, setOpen] = useState<boolearn>(false);/*boolearn追加*/ 5 6略 7``` 8``````Form 9interface TodoProps { 10 open: boolearn 11 isOpen: () => boolean; 12} 13 14略 15``` 16### 補足情報(FW/ツールのバージョンなど) 17react 18typescript 19eslint
回答1件
あなたの回答
tips
プレビュー