XXとしてる
2019年3月15日金曜日
JsDocからTypeScriptの型定義を移植するとき困ったことのまとめ
TypeScriptから型定義のないJSモジュールを使う機会があったので、せっかくなので勉強がてら型定義ファイルを自作してみた。 移植元のコードにはJSDoc形式のコメントがあったので、あらかた困ることはなかったのだが、いくつかどう型の定義を書けばいいのかわからなかった部分があったのでそれをメモしていく。 ## 辞書型 ```js /** * @property {Object
} [var] ``` stringをキーでnumberを値とするよくあるjsのオブジェクトだが、そのまま`Object
`と書くと、`Type 'Object' is not generic.`とエラーが出る。 TypeScriptではObjectはクラスに置き換わる形になるので、単に辞書型を定義する方法がよくよく考えてみたら思いつかない。 なので調べたところ以下のように書く。 ```ts var1: {[id:string]: number}; var2: {[id:string]: {[id: number]: C}} ``` ## 関数 関数も少し悩んだ。 ```js * @property {function(number, Bar):number} [func] ``` これは以下のように書く。 arg1とarg2は異なるものでもいい。 ```ts func: (arg1: number, arg2: Bar) => number; ``` ## 終わり 今回すでにGithub上でTypeScriptの型定義ファイルが公開されているものがあったが、 勉強のため一から自作してみたところやっぱり大変な作業であったので、 公開してくれている方には感謝する他ないとそのありがたみを感じたところでこの記事を閉じる。
公開してくれている人ありがとう!
(画像は以下のものを使用させていただきました。)
0 件のコメント:
コメントを投稿
次の投稿
前の投稿
ホーム
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿