意外と知らない? 動的型付けと型推論の違い

公開日: Apr 26, 2024

最終更新日: Apr 26, 2024

はじめに#

この記事はあくまで初心者向けです。

かみ砕いて説明しているため中級者や上級者の方からすると多少イライラする部分があると思いますが、お手柔らかにしていただけると幸いです。

動的型付けと型推論の違いは何?#

違いとしては変数の宣言後の代入時に型が変わるか否かです。

まず以下のJavaScriptのコードを見てください

let a = 123;

a = "hello";

console.log(a);

JavaScriptは動的型付けなので、代入時に型が変わります。

なので最初に数字を代入しても、後から文字列を代入できるんです。

これが動的型付けです。#

いっぽうTypeScriptでは動的型付けではなく型推論なので、JavaScriptのようなことはできません。

実際に実行すると以下のようなエラーが出てしまいます。

E:\codes\article> tsc index.ts
index.ts:3:1 - error TS2322: Type 'string' is not assignable to type 'number'.

3 a = "2344324"
  ~


Found 1 error in index.ts:3

要するに最初にaに数字を代入しているのでaはnumber型になっています。

なので後から文字列を入力しようとするとエラーが出てしまうのです。

これが型推論です。

最後に#

自分は他にもいろいろな記事を書いているので見ていただければ幸いです。

変更点等ありましたら、下記のTwitterアカウントに問い合わせしていただければ幸いです。

引用元#

型推論と動的型付けの違い | TypeScript入門『サバイバルTypeScript』
型を書かないという意味では、JavaScriptをはじめRubyやPHPなどの動的型付け言語でも同様です。型推論と動的型付けは何が違うのでしょうか?
型推論と動的型付けの違い | TypeScript入門『サバイバルTypeScript』 favicon typescriptbook.jp
型推論と動的型付けの違い | TypeScript入門『サバイバルTypeScript』
【備忘録】動的型付けと型推論の違い - Qiita
はじめにC#を勉強してると、「varって動的型付けじゃないの?」↓「C#だとdynamicが動的型付けで、varは型推論なんだ」↓「てか、動的型付けと型推論って違うのか!」となり、違い…
【備忘録】動的型付けと型推論の違い - Qiita favicon qiita.com
【備忘録】動的型付けと型推論の違い - Qiita

その他の記事はこちら

編集は こちら から