2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【型 'string | undefined' の引数を型 'string' のパラメーターに割り当てることはできません。】せっかくTypescript使っているんだから、通ればOKは違うでしょう!

Posted at

はじめに

型 'string | undefined' の引数を型 'string' のパラメーターに割り当てることはできません。

このエラーよく見ますよね。
stringだけではなくてnumberだったり、MyTypeのようなユーザ定義型だったり、色々あると思いますが、要は〇〇 | undefinedの場合のお話です。

結論

存在確認をしてundefinedの可能性を潰してあげましょう。

    // このIF文で存在確認をしている。
    if (hoge) {
    validateString(hoge.text)
    }

NULL合体演算子を使ってもいいし、三項演算子を使ってもいいです。
とにかく型チェックを無理やり回避するようなやり方をやめましょう。

出来れば避けたい対処法

・asで無理やり通す
→そうだ!as使えば良いじゃん!ってなりがちですが、型の安全性が損なわれるので良くないです。

・そもそものユーザー定義型でundefinedを入れてしまう
→全てのユーザ定義型でそれをやるって訳にもいかないので、良くないです。

・諦めていっそany
→どうしようもない時も正直あります。
ただし最終手段です。
ESLintとかでany禁止にするのが本当は一番なんですけどね・・・

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?