progress要素をクリックすると、progress
要素の長さとクリックした位置をコンソールに表示するものを作っています。
下記がデモです。
CodeSandBox
現状、progress
要素のonClick
に下記のエラーが表示されます。
下記のエラーはVSCode
で表示されるものです。
型'({ target, pageX, }: { target: { getBoundingClientRect(): ClientRect; offsetWidth: number;}; pageX: number; }) => void'を型'(event: MouseEvent<HTMLProgressElement, MouseEvent>) => void'に割り当てることはできません。
パラメーター'__0'および'event'は型に互換性がありません。
型'MouseEvent<HTMLProgressElement, MouseEvent>'を型'{ target: { getBoundingClientRect(): ClientRect; offsetWidth: number; }; pageX: number; }' に割り当てることはできません。
プロパティ 'target'の型に互換性がありません。
型'EventTarget'には型'{ getBoundingClientRect(): ClientRect; offsetWidth: number; }'からの次のプロパティがありません: getBoundingClientRect, offsetWidthts(2322)
index.d.ts(1455, 9): 予期された型は、型 'DetailedHTMLProps<ProgressHTMLAttributes<HTMLProgressElement>, HTMLProgressElement>' に対してここで宣言されたプロパティ 'onClick' から取得されています
以上のエラーを解決したいです。
ただし、エラーが出ているものの機能はしています。
ソースコード
tsx
1export default function App() { 2 const getPoint = ({ 3 target, 4 pageX 5 }: { 6 target: { 7 getBoundingClientRect(): ClientRect; 8 offsetWidth: number; 9 }; 10 pageX: number; 11 }) => { 12 const pos = target.getBoundingClientRect(); 13 console.log(target.offsetWidth); 14 console.log(pos.left); 15 console.log(pageX); 16 }; 17 return ( 18 <> 19 <progress onClick={getPoint} max="100" /> 20 </> 21 ); 22}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/09/22 06:14