JavaScriptモジュールに型を適用する
Denoには、JavaScriptで書かれたモジュールに型を適用するための3つの手段が存在します
@deno-types
code:typescript
// @deno-types="https://deno.land/x/types/react/v16.13.1/react.d.ts"
import React from "https://cdn.pika.dev/@pika/react@v16.13.1";
console.log(React.createElement);
トリプルスラッシュディレクティブ
code:add.d.ts
export function add(a: number, b: number): number;
code:add.js
/// <reference types="./add.d.ts" />
export function add(a, b) {
return a + b;
}
code:mod.ts
import { add } from "./add.js";
add(1, 2);
add("3", "4"); // コンパイルエラー🙅
X-TypeScript-Types
Denoはリモートモジュールをimportする際に、そのモジュールがローカルにキャッシュされていなければ、HTTPリクエストを送信します
その際に、レスポンスヘッダにX-TypeScript-Typesが含まれていれば、そこで指定されたURLから型定義ファイルを解決します
X-TypeScript-Typesヘッダを介した型定義の解決は、CDN等によって実装されることを想定しています. そのため、ユーザが直接使用するケースはほとんどないと思います