Typescriptの型絡みのメモ
EventTargetはElementではない
code:ts
function onTagClick(e: MouseEvent) {
const node = e.currentTarget
if (!node) return
const tag = node.getAttribute("data-tag") //<- エラー
if (!tag) return
...
MouseEvent.currentTargetの型はEventTarget | null。そしてEventTargetにはgetAttribute()がない。
なのでこうする
code:ts
function onTagClick(e: MouseEvent) {
const node: Element = (e.currentTarget as Element) //Elementに変換
if (!node) return
const tag = node.getAttribute("data-tag") //OK
if (!tag) return
...
ChangeEventの型(React)
code:ts
<select onChange={handleChange}>
...
</select>
...
function handleChange(event: React.ChangeEvent<HTMLSelectElement>) {
...
}