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

TypeScript报错TS2304:找不到名称'FontFace',动态加载字体如何解决?

问题原因

该TS2304报错属于TypeScript编译阶段的类型识别错误,原因是当前项目的类型声明库中没有包含FontFaceAPI的定义,和代码逻辑本身的运行正确性无关。

解决方案
  • 第一步:检查tsconfig基础配置
    打开项目根目录的tsconfig.json文件,确认compilerOptions下的lib数组包含"dom"项,参考配置如下:

    {
      "compilerOptions": {
        "lib": ["ESNext", "dom", "dom.iterable"]
      }
    }
    

    FontFace属于浏览器原生DOM API,必须引入dom类型库才能被TypeScript识别。

  • 第二步:安装专用类型声明包
    如果配置dom库后仍存在报错,需要额外安装CSS字体加载API的专属类型包,执行以下命令即可:

    npm install @types/css-font-loading-module --save-dev
    #  yarn安装命令
    yarn add @types/css-font-loading-module --dev
    
  • 临时规避方案(不推荐生产环境使用)
    如果不需要完整的类型提示,可在使用FontFace的代码文件顶部添加全局声明:

    declare const FontFace: any;
    

    也可以在实例化FontFace的代码上一行添加// @ts-ignore,跳过该行的类型检查。

验证修复

配置完成后重启TypeScript语言服务即可(VSCode用户可按快捷键Ctrl+Shift+P,选择「TypeScript: Restart TS Server」),报错会直接消失。

注意:FontFace是浏览器端专属API,如果是SSR/SSG类项目,需要确保这段代码仅在客户端环境执行,避免在Node.js服务端运行时出现真实的未定义报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 10:42:01