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

Angular中调用FontFaceSet.add()遇TypeScript错误,求解决方案

解决TypeScript中FontFaceSet.add不存在的错误

下面是几个可行的解决方案:

  • 类型断言绕过检查
    直接通过类型断言告诉TypeScriptdocument.fonts包含add方法,这是最直接的临时解决办法:

    // 简单断言为any
    (document.fonts as any).add(font);
    
    // 更严谨的自定义类型断言
    interface FontFaceSetWithAdd extends FontFaceSet {
      add(font: FontFace): void;
    }
    (document.fonts as FontFaceSetWithAdd).add(font);
    
  • 检查并完善tsconfig.json的lib配置
    确保你的tsconfig.json中compilerOptions.lib包含了完整的DOM相关库,FontFace相关的类型定义依赖这些库:

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

    修改后重启TypeScript服务或重新构建项目,让配置生效。

  • 使用FontFace.load()替代add方法
    调用FontFace实例的load()方法,加载完成后字体会自动加入文档的字体集合,效果和add一致:

    const font = new FontFace("myfont", "url(myfont.woff)", {
      style: "italic",
      weight: "400",
      stretch: "condensed",
    });
    
    font.load().then(() => {
      // 字体已加载完成,可在后续代码中使用
    });
    

内容的提问来源于stack exchange,提问作者Raphaël Balet

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:43:13