Как игнорировать ошибку TypeScript TS2339 - Свойство не существует для типа - PullRequest
1 голос
/ 07 января 2020

Я использую 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;
....

Далее все в порядке, потому что он соответствует d.ts определение:

// Override fabric to meet ourrequirements
fabric.util.object.extend(fabric.Object.prototype, {
  centeredRotation: true,

Как игнорировать ошибку DPI TS2339. Было бы здорово иметь автозаполнение, особенно для изучения fabri c.

My package. json:

"private": true,
"dependencies": {
  "@angular/core": "8.2.14",
  ....
  "@angular/router": "8.2.14",
  "@types/fabric": "3.5.1",
  "fabric": "3.5.1",
  ...
},

EDIT

Пока я решил эту проблему, добавив следующую строку:

// @ts-ignore
fabric.DPI = 213;

Я знаю, что это не лучшее решение, я предпочитаю решение @ wentjun.

Изменяя это: import * as fabric from 'fabric/fabric-impl'; to import { fabric } from 'fabric'; Теперь у меня также включена функция VisualStudio intellisense. Конечно, я добавил @ types / fabri cjs в пакет. json.

enter image description here

Ответы [ 3 ]

1 голос
/ 07 января 2020

В любом случае, приведите его как любой, тогда Typescript проигнорирует его, как предложил Вугар, или

import Определения Typescript

1 голос
/ 07 января 2020

Я не знаком с Fabri c, но рекомендуемый способ сделать это - расширить пространство имен fabric, чтобы принимать DPI в качестве допустимого свойства.

Сначала вы можете создать машинопись файл и определите ваше новое определение fabri c.

custom-fabri c .ts:

interface ExtendedFabric {
  DPI: number;
}

// apply additional types to fabric and export it for usage
export const CustomFabric: (ExtendedFabric & typeof fabric) = fabric as any;

В вашем классе / компоненте, который его использует,

import { CustomFabric } from './custom-fabric';

CustomFabric.DPI = 213; // no TS errors
1 голос
/ 07 января 2020

Например, вот так (fabric as any).DPI = 213;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...