素敵なサムシングを独断と偏見で一方的に紹介するブログ(´・ω・`)

投稿日: 2019年10月3日
最終更新日:

【Canvas】Property ‘toDataURL’ does not exist on type ‘HTMLElement’.の原因と対処方法【TypeScript】

YouTubeも見てね♪

ねこじゃすり

created by Rinker
PEPPY(ペピイ)
¥3,850 (2025/01/05 12:56:12時点 Amazon調べ-詳細)

猫を魅了する魔法の装備品!

【最新機種】GoPro hero11 Black

created by Rinker
¥61,300 (2025/01/05 20:59:47時点 楽天市場調べ-詳細)

最新機種でVlogの思い出を撮影しよう!

[ノースフェイス] THE NORTH FACE メンズ アウター マウンテンライトジャケット

created by Rinker
THE NORTH FACE(ザノースフェイス)
¥33,000 (2025/01/05 13:22:08時点 Amazon調べ-詳細)

防水暴風で耐久性抜群なので旅行で大活躍です!

レッドブル エナジードリンク 250ml×24本

created by Rinker
Red Bull(レッドブル)
¥4,000 (2025/01/05 12:33:39時点 Amazon調べ-詳細)

翼を授けよう!

モンスターエナジー 355ml×24本 [エナジードリンク]

created by Rinker
モンスター
¥4,718 (2025/01/05 12:33:40時点 Amazon調べ-詳細)

脳を活性化させるにはこれ!

ドラゴンクエスト メタリックモンスターズギャラリー メタルキング

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,940 (2025/01/05 12:41:47時点 Amazon調べ-詳細)

みんな大好き経験値の塊をデスクに常備しておこう!

サンディスク microSD 128GB

スマホからSwitchまで使える大容量MicroSDカード!

CanvasのtoDataUrlでコンパイルエラー

TypeScriptを使ったプロジェクトの中でcanvastoDataUrlメソッドやtoDataURLメソッドを使用すると、以下のようなエラーが発生する事があると思います。

このままだとコンパイルエラーのため、CIで止まってしまうので解決する必要があります。

原因

これは、canvas要素を取得した際の戻り値の型を明示的に指定する必要があります。

解決方法

解決方法は2種類あります。

asを使って型を定義

まず一つ目はasを使ってType assertions (キャスト)を行う方法です。

キャストを行う

二つ目はジェネリックを使う方法です。

型定義だけではダメ

変数を定義する際に型を指定すれば良いのでは?とTypeScript初心者の筆者は思いましたが、それではダメでした。

その場合はascastと併用しなければいけないので、直接的な解決策ではなさそうですね。

終わりに

以上のように、ややはまりがちなTypeScriptのエラーです。

お困りの方は是非試してみてください♪

CATEGORIES & TAGS

IT