【问题标题】:Property 'fonts' does not exist on type 'Document'?“文档”类型上不存在属性“字体”?
【发布时间】:2019-09-07 11:14:04
【问题描述】:

我在 vue 中使用打字稿 并使用 document.fonts api 但控制台此日志

Property 'fonts' does not exist on type 'Document'

【问题讨论】:

    标签: typescript vue.js


    【解决方案1】:

    实验性 API 不在 lib 文件中。

    您可以通过以下方式修复它:(document as any).fonts

    【讨论】:

      【解决方案2】:

      将此添加到环境声明文件中,例如 src/index.d.ts

      type CSSOMString = string;
      type FontFaceLoadStatus = 'unloaded'|'loading'|'loaded'|'error';
      type FontFaceSetStatus = 'loading'|'loaded';
      
      interface FontFace {
        family: CSSOMString;
        style: CSSOMString;
        weight: CSSOMString;
        stretch: CSSOMString;
        unicodeRange: CSSOMString;
        variant: CSSOMString;
        featureSettings: CSSOMString;
        variationSettings: CSSOMString;
        display: CSSOMString;
        readonly status: FontFaceLoadStatus;
        readonly loaded: Promise<FontFace>;
        load(): Promise<FontFace>;
      }
      
      interface FontFaceSet {
        readonly status: FontFaceSetStatus;
        readonly ready: Promise<FontFaceSet>;
        check(font: string, text?: string): Boolean;
        load(font: string, text?: string): Promise<FontFace[]>
      }
      
      declare global {
        interface Document {
          fonts: FontFaceSet
        }
      }
      

      【讨论】:

        【解决方案3】:

        对我来说,根据this 线程,足以安装以下软件包:

        npm i -S @types/css-font-loading-module
        

        然后在您看到错误的 .ts 文件中,导入下一行:

        import type { } from "css-font-loading-module";
        

        【讨论】:

          猜你喜欢
          • 2021-05-29
          • 2020-03-06
          • 2020-08-13
          • 2019-05-07
          • 2021-05-04
          • 2017-07-05
          • 2021-02-12
          • 1970-01-01
          • 2021-11-27
          相关资源
          最近更新 更多