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

使用lit@3.0.0与TS@5.2.0时TemplateResult非泛型报错问询

问题描述

使用 lit@3.0.0 与 TypeScript@5.2.0 构建组件后,生成的 my-component.d.ts 中包含如下代码:

render(): import("lit-html").TemplateResult<1> | undefined;

但编译时抛出错误:

error TS2315: Type 'TemplateResult' is not generic
问题原因

这个错误的核心是lit@3.x 版本中,TemplateResult 已不再是泛型类型,但生成的类型定义文件却沿用了旧版的泛型写法,具体诱因分为以下几种:

  • 依赖版本冲突:项目中可能存在旧版 lit-html(如 2.x)的依赖残留,或是其他第三方依赖间接引入了 lit-html@2.x。旧版 TemplateResult 是带泛型参数的类型,而 lit@3.0.0 配套的 lit-html@3.x 已将其改为非泛型,TypeScript 解析时同时读取到新旧两种类型定义,导致冲突报错。

  • 构建工具类型生成适配问题:部分打包/类型生成工具(如 Rollup 的 TypeScript 插件、tsc 的某些编译选项)未适配 lit@3.x 的类型变更。在 lit@2.x 中,TemplateResult 需要泛型参数标记模板类型,但 3.x 已移除该设计,工具仍按照旧逻辑生成了带泛型的类型声明。

  • TypeScript 配置或解析问题:若 tsconfig.json 中未开启 skipLibCheck,TypeScript 会严格检查所有依赖的类型定义;或是 moduleResolution 配置导致 TypeScript 优先解析了旧版 lit-html 的类型文件,而非 lit@3.0.0 配套的新版本类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 15:33:13