kouの技術的メモ

学習した内容の定着やアウトプット用に開設しました

TypeScript 関数の型とモジュールの型定義

関数の型宣言

戻り値は型推論で省略可能だが、引 数は必ず指定する必要がある

関数の引数のかっこのすぐ後ろに型を書く

> const add = (n: number, m: number): number => n + m;
> add(1, 3); 
4

> function subtr(n: number, m: number): number { return n - m; }
> subtr(5, 4); 
1

> const hello = (): void => { console.log('Hello!') };
> hello();
 Hello!

モジュールの型定義

TypeScriptでも拡張子 .d.ts の型定義ファイルさえ用意すれば TypeScript にインポートしてnpmのJavaScript製モジュールを使える。 モジュール自体にそういったtypescript用の定義ファイルが用意されている場合もある。

ない場合はDefinitlyTypedプロジェクトはそういったモジュールごとの型定義ファイルを有志のユーザーたちが作って公開している。

探す方法は npm公式サイトで お目当てのnpm のモジュール名の頭に @types/ をつけて検索すると出る。 例: @types/react-router

https://www.npmjs.com/

あるいは ターミナルで以下を実行しても出てくる。

yarn info @types/react-router 

ただ、あくまで有志による第三者による非公式のものなので、動作 が完全には保証されてない。 またオリジナルのバージョン更新についていけて なくて、最新版に対応していないこともある。