JavaScriptらしさを支える型システムだと感じた

――:エンジニアになる前はデザイナーとして活動されていたという話を伺いました。どうしてエンジニアになろうと思ったのでしょうか?
デザイナーといってもすごく昔の話なんですけど、僕が仕事を始めたときはFlash全盛期で。Webサイトをデザインしてコーディングするまで一貫して請けるのは、珍しいことではありませんでした。後からコードも書けるようになったものの、どっちつかずなスキルセットが腑に落ちず、どちらかのスキルに尖っていきたいと思うようになったからなんです。
――:それでエンジニアになったと。なんとなくイメージが湧きました。そのなかでTypeScriptに興味を持つようになったきっかけは何だったのでしょうか。
会社で使っていたコードがflowtypeだったのですが、一部のコードをライブラリとしてOSS(オープンソースソフトウェア)にして配信できそうだと考えたんです。当時はflowtypeとともにTypeScriptも話題になり始めている時期でした。それならば、両方に対応しないとなって。
それで初めてTypeScriptを触ったんですけど、型推論の強さにまず惹かれました。プログラマーが書いたコードのルーツを辿れる表現力があって。その頃は、Conditional Typeという機能が搭載されたばかりの時期です。それがもう衝撃的で。自分が考えていた型の概念を覆されたというか。JavaScriptは柔軟な言語で、完璧に型安全にするハードルはかなり高いと思うのですが、それをカバーできるだけの表現力があるなと感じたんです。
――:その点は優秀ですよね。僕自身、過去にUnityでC#を使ったことがあるんですけど、厳密に型を定義しないといけない上にコード量が多くて疲れてしまいました。TypeScriptはそういうことが少ない気がします。
よりベストな形を目指していける感じがしますよね。型があるコードに対しても、ないコードに対しても、要望を受け取ってくれる。そんな懐の広さを感じます。あと途中で違うコードに置き換えるときもそこまでハードルが高くないので、取り組みやすいのかなと思います。
――:私もTypeScriptを使うことがあるんですけど、初動だと厳密に型を定義でない場合があるじゃないですか。そういうときに、後から置き換えればいいやという感じで楽に進められますよね。
テストを書いてから進めるか、書かないで進めるかみたいな話に似ていますよね。ひとつずつ確実に定義していくか、速度を最優先にするのかっていう。後から対応するのは大変なので、始めからきちんとする方が、もちろんおすすめですけど(笑)。





![[Astro×Hono×Fresh対談] Next.jsじゃないFWが見据えるフロントエンドの未来 #フロントエンドの未来](https://images.microcms-assets.io/assets/0424eb4d08074d81bfa98eb3dc10071c/5e3205aa6ee543e59bfbd34e6f2c101d/report_Astro_Hono_Fresh.png?w=3840&q=75&fm=webp)
