如何忽略 TypeScript 错误 TS2339 - 类型上不存在属性

bro*_*and 6 fabricjs typescript angular

我正在使用 Angular 8(在 Visual Studio 2019 中启动了一个项目)并拥有fabric.init.ts包含以下内容的文件:

import 'fabric';
import * as fabric from 'fabric/fabric-impl';

// (TS) Property 'DPI' does not exist on type 'typeof import(..@types/fabric/fabric-impl)'
fabric.DPI = 213;
....
Run Code Online (Sandbox Code Playgroud)

接下来就可以了,因为它符合 d.ts 定义:

// Override fabric to meet ourrequirements
fabric.util.object.extend(fabric.Object.prototype, {
  centeredRotation: true,
Run Code Online (Sandbox Code Playgroud)

如何忽略DPITS2339 错误。拥有自动补全功能真是太棒了,特别是对于学习结构而言。

我的package.json:

"private": true,
"dependencies": {
  "@angular/core": "8.2.14",
  ....
  "@angular/router": "8.2.14",
  "@types/fabric": "3.5.1",
  "fabric": "3.5.1",
  ...
},
Run Code Online (Sandbox Code Playgroud)

编辑

现在我通过添加这一行解决了这个问题:

// @ts-ignore
fabric.DPI = 213;
Run Code Online (Sandbox Code Playgroud)

我知道这不是最好的解决方案,我更喜欢@wentjun 的解决方案。

通过更改此:我import * as fabric from 'fabric/fabric-impl';现在import { fabric } from 'fabric';也启用了 VisualStudio 智能感知。当然,我将 @types/fabricjs 添加到了 package.json 中。

在此输入图像描述

Vug*_*yev 2

比如像这样(fabric as any).DPI = 213;