Shogo's Blog

Sep 21, 2026 - 1 minute read - typescript javascript deno

【解決】denoland/dntがerror TS2304: Cannot find name 'ErrorOptions'で失敗する

背景

Deno で書いた TypeScript を npm にアップロードするために denoland/dnt を利用しています。 しかし、 error TS2304: Cannot find name 'ErrorOptions' をいうエラーメッセージで失敗するので困っていました。

解決方法を見つけた(Claude先生が)ので共有しておきます。

解決方法

原因は @std/assert が ECMAScript の新機能を使っているためでした。 TypeScriptが認識している標準ライブラリーのバージョンが古いので、明示的に新しいバージョン ESNext を指定すればOKです。 また、globalThis.addEventListener の型情報が解決できずに失敗するので DOM も追加します。

import { build, emptyDir } from "@deno/dnt";

await emptyDir("./npm");

await build({
  entryPoints: ["./limit-concurrency.ts"],
  outDir: "./npm",
  shims: {
    deno: true,
  },

  // コンパイラーオプションを追加する。
  compilerOptions: {
    lib: ["ESNext", "DOM"],
  },

  // 以下略
});

これでも解決しない場合、denoland/dnt が古いことが考えられます。 最新のバージョンにアップデートしましょう。

これで以前行ったワークアラウンドは不要になりました。

まとめ

denoland/dntがerror TS2304: Cannot find name ‘ErrorOptions’で失敗する問題を解決しました。

  • コンパイラーオプションで ESNext, DOM を標準ライブラリーに指定する
  • denoland/dnt をアップデートする

AIに聞けば何でも解決できちゃう時代ですが、一応記録として残しておきます。

参考