Devsway

日々の記録とか記憶とか。


いきさつ


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




カテゴリー

オレオレIT用語辞典