【发布时间】:2019-09-07 11:14:04
【问题描述】:
我在 vue 中使用打字稿 并使用 document.fonts api 但控制台此日志
Property 'fonts' does not exist on type 'Document'
【问题讨论】:
标签: typescript vue.js
我在 vue 中使用打字稿 并使用 document.fonts api 但控制台此日志
Property 'fonts' does not exist on type 'Document'
【问题讨论】:
标签: typescript vue.js
实验性 API 不在 lib 文件中。
您可以通过以下方式修复它:(document as any).fonts
【讨论】:
将此添加到环境声明文件中,例如 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
}
}
【讨论】:
对我来说,根据this 线程,足以安装以下软件包:
npm i -S @types/css-font-loading-module
然后在您看到错误的 .ts 文件中,导入下一行:
import type { } from "css-font-loading-module";
【讨论】: