結論
import
文の上に @ts-types="npm:@types/XXX"
を書く。
// @ts-types="npm:@types/argparse"
import { ArgumentParser } from 'npm:argparse';
解説
まず、Deno でも npm パッケージ本体に型が含まれている場合は何もしなくても型がつく。
import Fastify from 'npm:fastify'; // Fastify はパッケージに型が含まれている
const fastify = Fastify({ logger: true }); // 型がつくしVSCodeでIntellisenseが働く
しかし、パッケージXXX
本体に型が含まれていない場合、DefinitlyTyped の型定義パッケージ @types/XXX
を使って型を追加するということがよくある。
Node.js の場合はその型定義パッケージを npm install
しておけば特に何もせずとも型がつくようになるが、Denoではそうはいかず「結論」のように明示的に型定義を指定する必要がある。
@ts-types
の公式ドキュメントでの記述は以下。
別の書き方
@ts-types
は @deno-types
でも動く。何が違うのかは不明。
// @deno-types="npm:@types/argparse"
import { ArgumentParser } from 'npm:argparse';
公式ドキュメントでの @deno-types
の記述は以下。