技術とかの雑なToday I Learnedメモ

JavaScriptファイルに型をつける

JavaScript ファイルに型をつける

昨日に引き続きvuejs/vue-test-utils: 🔬 Utilities for testing Vue componentsを読んでいる。

で、読んでたら当たり前のように JavaScript のファイルに型があって、あれ?となったので調べた。

TypeScript の型: 既存の JavaScript ライブラリに型情報を追加する(.d.ts ファイル)|まくろぐ

Ambient Declarations を使うと JavaScript に型情報を付与できるらしい。

そういえばdeclareキーワードは今までも見たことがあったが特に意識していなかった、これのことか。

既存の JavaScript ファイルの実装に型をつけたい場合は、同じディレクトリの階層で同じファイル名で.d.tsを作らなくてはいけない。

./lib/hoge.jsなら./lib/hoge.d.tsとしなくてはいけないということ。

vue-test-utils/packages/test-utils(workspaces のひとつ)の package.json には"types": "types/index.d.ts"という記述がある。

これは npm に公開されているライブラリが自身のコードに対して型宣言をしていて、package.json の types に型定義ファイルを指定することで、このライブラリをそのまま TypeScript として import できる。

ライブラリ自身の型定義の場合は package.json に書いておけば大丈夫(階層ごとに.d.ts を用意しなくてもよい)なのはなんで?と思ったけど、ライブラリは使われる側に型が知られればいいから、かな。

記事内にStringじゃなくてstringを使う、というのが出てきた。

TypeScript: Documentation - Do's and Don'ts

これは去年の 6/3に書いたやつだな、と思って読み返していた。