created: 2021-08-01T01:05:04.000Z
.d.ts ファイルを自作してimportする
APIのTypeScriptの型定義ファイル(foobar.d.ts
など)が提供されておらず、APIレスポンスをjson2tsなどにつっこんで型定義ファイルを得るということをよくやる
こんな型定義が得られる
declare module Kibela {
export interface OutgoingWebhook {
action: string;
blog: Blog;
resource_type: string;
}
export interface Blog {
author: Author;
boards: Board[];a
content_html: string;
content_md: string;
id: string;
title: string;
url: string;
}
}
これを .ts
ではなく.d.ts
で管理すると、型定義と実装が別ファイルで管理できて具合がいい
.d.ts ファイルを作成
tscは @types
という名前のディレクトリを見つけたらそれの中のものを型定義ファイルとして読み込んでくれる
By default all visible “@types” packages are included in your compilation.
src/@types/foo.d.ts
といった場所にファイルを作成しておく
なお、tsconfig.json#baseUrl
に指定がないと tsc が型定義ファイルを探せないので設定が必要。
src/@types
配下の定義を認識させるのなら以下のように設定する。
"noUnusedLocals": false,
+ "baseUrl": "./src",
"outDir": "lib",
importする
こんな感じでimportすればnamespaceが使える
import './@types/foo';