1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【TypeScript】any型とunknownについて 〜備忘録〜

Posted at

先日からトTypeScriptを学習してるのでアウトプットがてら書いていこうと思います!

間違い等あれば指摘して頂けると幸いです!

#any型とunknown型の違い

結論→any型は使用しないよう意識するべき!
そもそもTypeScriptは型定義することで事前にエラーをアラートしてくれる言語であるのに、それを放棄するイメージ。

#####any型・・・どんな型でも許容する
#####unknown型・・・代入された値によって型が決まる

実際に挙動の違いを書いていきます

###any型の挙動

anySample.ts
export const anySample = () => {
  let name:any = 'aaaa'
  // string型が表示される→ string aaaa
  console.log(typeof name,name);
  name = 25
  // number型表示される→ number 25
  console.log(typeof name,name);
}

any型で定義すると、1つ目のconsoleではstringが表示され、
2つ目のconsoleではnumber型定義される

これがany型の挙動です!

###unknown型の挙動

unknownSample.ts
export const  unknownSample = () => {
      let number: unknown = 10;
      // number型が表示される
      console.log(typeof number,number)

      // この書き方はエラーが表示されます → オブジェクト型は 'unknown' です。
   //   const sum = numberValue + 10

   if(typeof number === 'number'){
          // number型と指定することで使用することができる
            const sum = number + 10
            console.log(sum)
       }
}

const sum = number + 10sumに10を追加しようとしても
エラー文で「オブジェクト型は 'unknown' です。」と表示されてしまいます。
そこで一度if文を使ってnumberはnumber型であることを証明してから使用するとうまくいきます!
unknown型を使用する時はif文を使って処理を切りわけることが必要です!

#最後に

JavaScriptは型定義する習慣がなかったから慣れないな〜

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?