Я новичок в использовании TypeScript и Webpack и, к сожалению, продолжаю сталкиваться с проблемой с объявлениями типов, которые я просто не могу решить.
Проще говоря, мой проект - это приложение ASP.NET MVC React, которое использует NPM, TypeScript и Webpack для управления зависимостями JavaScript. Проблема, с которой я столкнулся, заключается в том, что, хотя мой проект может успешно компилироваться, у меня есть более 180 errors
, которые выглядят следующим образом.
TS2717 (TS) Subsequent property declarations must have the same type. Property 'webview' must be of type 'DetailedHTMLProps<WebViewHTMLAttributes<HTMLWebViewElement>, HTMLWebViewElement>', but here has type 'DetailedHTMLProps<WebViewHTMLAttributes<HTMLWebViewElement>, HTMLWebViewElement>'.
Вот изображение консоли ошибок:
Теперь, если я посмотрю поближе, щелкнув тип и нажав «Перейти к определению», я вижу, что в моем проекте явно есть две ссылки, определенные для того же типа, что и здесь:
Проблема в том, что оба эти файла являются требованиями для моего проекта tsconfig.json, потому что без них он не компилируется.
Мой tsconfig.json выглядит так:
{
"compilerOptions": {
"module": "commonjs",
"moduleResolution": "node",
"target": "es5",
"sourceMap": true,
"lib": [ "es5", "es2017", "dom"]
"removeComments": true,
"typeRoots": [
"/node_modules/@types",
"/Types/"
]
},
"compileOnSave": false,
"exclude": [
"/node_modules/",
"/bin",
"/obj"
]
}
а мой файл package.json выглядит так:
{
"name": "fungalai",
"version": "1.0.0",
"dependencies": {
"react": "16.4.2",
"react-dom": "16.4.2"
},
"devDependencies": {
"@types/flux": "3.1.7",
"axios": "^0.18.0",
"deep-diff": "^1.0.1",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
"babel-polyfill": "^6.26.0",
"babel-preset-es2015": "6.24.1",
"babel-preset-react": "6.24.1",
"babel-preset-stage-0": "^6.24.1",
"create-react-class": "^15.6.3",
"expose-loader": "^0.7.5",
"jszip": "^3.1.5",
"flux": "3.1.3",
"ts-loader": "^4.3.0",
"typescript": "3.0.1",
"uglifyjs-webpack-plugin": "^1.2.5",
"webpack": "^4.8.3",
"webpack-cli": "^2.1.4"
}
}
Теперь я подозреваю, что эта проблема как-то связана со строкой в моем файле tsconfig.json "lib": [ "es5", "es2017", "dom"]
, но если я удалю любую из этих ссылок, мой проект не будет компилироваться, потому что явно некоторые из моих типов определены в этих ссылках на библиотеки.
Может ли кто-нибудь помочь мне в правильном направлении решения этой проблемы и правильно ссылаться на DOM вместе с React в ASP.NET TypeScript?
РЕДАКТИРОВАТЬ: Я также попытался изменить свой файл tsconfig.json, чтобы удалить ссылки «lib» (при условии, что я могу использовать Polyfill) на «lib»: []. Однако проблема все еще сохраняется.
global.d.ts
файлам, которые вы нашли в определении «Перейти к»? Предполагая, что это типизации React, похоже, что у вас могут быть установлены две несовместимые копии типов React. - person Matt McCutchen   schedule 31.08.2018