2016-01-30 DefinitelyTyped/tsd から typings/typings に移行した
bouzuya/typescript-boilerplate を DefinitelyTyped/tsd から typings/typings に移行したことを書く。
typings/typings は TypeScript の型定義 (declaration source file) いわゆる .d.ts を取得するための CLI tool だ。同じ位置づけの DefinitelyTyped/tsd の後継である。
今回の目的は deprecated になってしまった DefinitelyTyped/tsd から typings/typings に乗り換えることだ。きっかけは npm install
した際に tsd 0.6.5 が deprecated なったという通知を受けたことだ。もともと tsd は command-line option などが npm などと異なっており、ぼくには非直感的だったのですぐに乗り換えを決めた。
typings/typings の良いところはいくつかある。
ひとつは npm に近い command を持っていることだ。 typings init
/ typings search
/ typings install
などを持っている。
$ $(npm bin)/typings init
$ cat typings.json {
"dependencies": {},
"devDependencies": {}
}
$ $(npm bin)/typings search mocha --ambient
Showing 4 results...
NAME SOURCE HOMEPAGE DESCRIPTION
gulp-mocha dt https://github.com/sindresorhus/gulp-mocha
mocha dt http://mochajs.org/
mocha-node dt http://mochajs.org/
mocha-phantomjs dt http://metaskills.net/mocha-phantomjs/
$ $(npm bin)/typings install mocha --ambient --save-dev
? Found mocha typings for DefinitelyTyped. Continue? Yes
Installing mocha@~2.2.5 (DefinitelyTyped)...
mocha
└── (No dependencies)
$ cat typings.json {
"dependencies": {},
"devDependencies": {},
"ambientDevDependencies": {
"mocha": "github:DefinitelyTyped/DefinitelyTyped/mocha/mocha.d.ts#d6dd320291705694ba8e1a79497a908e9f5e6617"
}
}
他の良いところは tsd の型定義を活かせることだ。上記の例にもある --ambient
という option を指定する。この option は tsd の registry である DefinitelyTyped/DefinitelyTyped をあわせて検索したり install できる。
.d.ts を利用する側の移行方法が難しくないのも良い。npm install --save-dev typings
して上記のように typings.json
を作成して、 tsconfig.json
に記述する d.ts を typings/tsd.d.ts
から typings/main.d.ts
に変えるくらいだ。
.d.ts を提供する側は registry が DefinitelyTyped/DefinitelyTyped から typings/registry に変わる。直接 .d.ts を管理するのではなく、 .d.ts を取得するための URL を管理する形だろう。version も管理できているので、より細かく管理できそうだ。
実際の使用例は [typescript-boilerplate][] に置いている。
特に見えている課題はない。tsd にできることはひととおりできるように思う。使うなかで見えてくるかもしれないけど。このあたりの移行方法は誰かが Qiita にでも書いていそう。
今後は新規の TypeScript Project では typings 一択だろう。