いきさつ
TypeScript勉強中。d.ts
ファイルってなに?
いまだによくわかってない。。
d.tsとは?
型定義ファイル
といいます。
型宣言ファイル
何に使うの?
ライブラリの型定義ができるようにするためです。
グローバルライブラリ
todo
Ambient(アンビエント)
アンビエントとは?
実装を定義しない宣言を「アンビエント」と呼びます。 通常、これらは.d.tsファイルで定義されます。
Node.jsでは、ほとんどのタスクは1つ以上のモジュールをロードすることで実行されます。
最上位のエクスポート宣言を使用して、各モジュールを独自の.d.tsファイルで定義できますが、1つの大きな.d.tsファイルとして記述する方が便利です。
実践
いろいろ書くと長くなるので実践でどういう感じで使うのか、だけ。
// nuxt.d.ts
declare module "vuex/types/index" {
interface ActionTree<S, R> {
nuxtServerInit: (
context: ActionContext<S, R>,
nuxtContext: ApplicationContext
) => void;
}
}
こんな感じで書く。
declare module {これはなに?}
どうやらモジュール名らしい
// モジュール名url
declare module "url" {
export interface Url {
protocol?: string;
hostname?: string;
pathname?: string;
}
export function parse(urlStr: string, parseQueryString?, slashesDenoteHost?): Url;
}
importして使える。
import * as URL from "url";
let myUrl = URL.parse("http://www.typescriptlang.org");
モジュール名っていうのは
こうやってできるやつのことか。。。
import * as foo from “vuex/types/index”
感想
う〜ん。。
わかりづらい。。
とりあえずdeclareして、もしそれが存在していたらよしなに型定義してくれるってことね。。
参考
https://www.typescriptlang.org/docs/handbook/declaration-files/library-structures.html
最近のコメント