You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Deno中使用nano_jsx定义JSX.IntrinsicElements及解决TS报错

在Deno中解决nano_jsx的JSX.IntrinsicElements类型错误

问题根源

使用nano_jsx编写JSX时,TypeScript无法找到JSX.IntrinsicElements接口的定义,导致所有原生HTML元素(如<div>)被隐式推断为any类型,从而触发deno-ts(7026)错误。

解决办法

1. 导入nano_jsx官方类型定义

直接引入nano_jsx的类型声明文件,让TypeScript自动识别所有原生HTML元素的类型:

import type { JSX } from "https://cdn.jsdelivr.net/npm/nano-jsx@0.0.35/lib/index.d.ts";

注意:请替换URL中的版本号为你实际使用的nano_jsx版本。

2. 手动声明全局JSX接口(备选方案)

如果导入官方类型无效,可手动声明JSX.IntrinsicElements接口,但这种方式会丢失属性类型校验,仅适合临时调试:

declare global {
  namespace JSX {
    interface IntrinsicElements {
      div: Record<string, unknown>;
      span: Record<string, unknown>;
      h1: Record<string, unknown>;
      // 按需添加其他HTML元素
    }
  }
}

3. 配置Deno的JSX编译选项

在deno.json或deno.jsonc中添加JSX相关配置,让Deno关联nano_jsx的处理逻辑:

{
  "compilerOptions": {
    "jsx": "react-jsx",
    "jsxImportSource": "https://cdn.jsdelivr.net/npm/nano-jsx@0.0.35/lib/index.js"
  }
}

验证修复

完成上述操作后,重新运行你的代码:

const problematicCode = <div>Hello world</div>;

此时TypeScript将正确识别<div>的类型,deno-ts(7026)错误会消失。

内容的提问来源于stack exchange,提问作者ThomasReggi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 01:02:12