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

IT

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

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

Anker PowerCor

created by Rinker
Anker
¥4,990 (2024/04/03 21:42:08時点 Amazon調べ-詳細)

旅行には必須の大容量モバイルバッテリー!

【最新機種】GoPro hero11 Black

created by Rinker
GoPro(ゴープロ)
¥62,000 (2024/04/03 21:42:08時点 Amazon調べ-詳細)

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

ペヤング ソースやきそば 120g×18個

created by Rinker
ペヤング
¥2,600 (2024/04/03 21:42:16時点 Amazon調べ-詳細)

とりあえず保存食として買っておけば間違いなし!

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

created by Rinker
Red Bull(レッドブル)
¥4,000 (2024/04/03 21:42:12時点 Amazon調べ-詳細)

翼を授けよう!

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

created by Rinker
スクウェア・エニックス(SQUARE ENIX)
¥3,250 (2024/04/03 21:42:09時点 Amazon調べ-詳細)

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

BANDAI SPIRITS ULTIMAGEAR 遊戯王 千年パズル 1/1スケール

created by Rinker
BANDAI SPIRITS(バンダイ スピリッツ)
¥7,500 (2024/04/03 21:42:14時点 Amazon調べ-詳細)

もう一人の僕を呼び覚ませ!!

サンディスク microSD 128GB

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

スポンサーリンク

336×280




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

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

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

原因

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

解決方法

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

asを使って型を定義

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

キャストを行う

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

型定義だけではダメ

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

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

終わりに

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

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

336×280




336×280




CATEGORIES & TAGS

IT, , , , , , , , , ,

blogenist

Author: blogenist

関連記事

YouTubeも見てね♪

YouTubeも見てね♪

2021/05/20

【コンプリート済みドラクエ豆知識まとめ】ドラゴンクエストモンスターズ キャラバンハート(DQMCH) 全200体モンスターライブラリ(魔物図鑑)【GBアドバンス】

2021/05/21

【改造ドラクエ3】祝DQ3 HD-2Dリメイク記念!デバッグモードのコードを使って勇者の挑戦を流しながら全159匹の高クオリティなドット絵戦闘モーションを堪能してみた【モンスターライブラリ】

2023/09/15

【SFC版DQ3総当たり格闘場】バラモスファミリー総当たりバトル!引き分け無しチートモンスター闘技場 バラモスVSバラモスブロスVSバラモスゾンビVSバラモスエビル【一族】

2023/09/05

【PS版DQ7総当たり格闘場】トラウマ山賊一味!引き分け無しチートモンスター闘技場風 さんぞく兵VSさんぞくマージVSさんぞくVSエテポンゲVSさんぞくのかしら ボスバトル【ドラゴンクエスト7】

2023/06/30

【DS版DQ5格闘場】ラスボスと裏ボスのぶつかり合い!引き分け無しチートモンスター闘技場 ミルドラース(第1、第2形態)VSエスターク バトル【ドラゴンクエスト5リメイク】

2023/06/09

【PS版DQ4格闘場】進化の秘法のぶつかり合い!引き分け無しチートモンスター闘技場 デスピサロVS究極エビルプリースト ラスボス裏ボスバトル【ピサロ様ドラクエモンスターズ3新作主人公おめ!】

お名前.comサイドバー