Когато компилирам моя TypeScript проект, компилаторът извежда следната грешка:
node_modules/@types/domutils/index.d.ts:6:10 - error TS2614: Module '"../../domhandler/lib"' has no exported member 'DomElement'. Did you mean to use 'import DomElement from "../../domhandler/lib"' instead?
Нарушителната линия е:
import { DomElement } from "domhandler";
Проблемът е, че във файла за въвеждане, от който се опитва да импортира, интерфейсът DomElement е експортиран интерфейс, който не е по подразбиране, както следва:
export interface DomElement {
attribs?: {[s: string]: string};
children?: DomElement[];
data?: any;
name?: string;
next?: DomElement;
parent?: DomElement;
prev?: DomElement;
type?: string;
}
Ако премахна фигурните скоби, това всъщност работи, но това ми се струва проблематично:
- Останах с впечатлението, че само експорти по подразбиране могат да бъдат импортирани без къдрави скоби. Защо това импортиране е изисква без къдрави скоби?
- Този проблем възниква в дефинициите на типове в папката
node-modules
, предоставени от DefinitelyTyped. Не искам да променя файл на зависимост. В Github няма свързани отворени проблеми, така че предполагам, че работи. Всъщност работи за колега с по-стара версия на Node (v8), но това не изглежда, че трябва да има значение.
Версии:
- Node.js - 12.14.0
- Елемент от списък
- TypeScript 3.7.2 (също тестван, не работи на 3.7.4)
- Дефиниции на типове за domhandler 2.4 (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/domhandler)
- Дефиниции на типове за domutils 1.7 (https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/domutils)
АКТУАЛИЗАЦИЯ
Ето моят tsconfig.json:
{
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"sourceMap": true,
"outDir": "dist",
"baseUrl": ".",
"paths": {
"*": [
"node_modules/*"
]
}
},
"include": [
"src/**/*"
]
}
sanitize-html
като негово дърво на зависимости еsanitize-html
-›htmlparser2
-›domutils
-›domhandler
. Конфигурацията (с typescript 3.6.4) работеше във възел 8 преди надстройката до възел 12. - person sceee   schedule 27.12.2019npm-shrinkwrap.json
илиpackage-lock.json
дали има няколко версии наdomutils
там? И също така, кои зависимости привличатdomutils
в кои версии? - person sceee   schedule 27.12.2019