Ошибка в node_modules/@types/ реагировать-dom/.... Последующие объявления переменных должны иметь тот же тип. Переменная "а"
Я установил @types/ реагировать-dom вместе с typcript и @types/ реагировать и @types/meteor, но когда я пытаюсь запустить проверку типов из командной строки, я получаю следующую ошибку
Вы можете воспроизвести ошибку и увидеть все мои настройки здесь: https://github.com/Falieson/react15-meteor1.5
Спасибо за вашу помощь!
$ meteor npm run type:client
> react-meteor-example@0.1.0 type:client /Users/sjcfmett/Private/ReactMeteorExample
> tslint -p ./tsconfig.json --type-check './client/**/*.{ts,tsx}'
Error at node_modules/@types/react-dom/node_modules/@types/react/index.d.ts:3422:13: Subsequent variable declarations must have the same type. Variable 'a' must be of type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>', but here has type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>'.
Error at node_modules/@types/react-dom/node_modules/@types/react/index.d.ts:3423:13: Subsequent variable declarations must have the same type. Variable 'abbr' must be of type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>', but here has type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>'.
Error at node_modules/@types/react-dom/node_modules/@types/react/index.d.ts:3424:13: Subsequent variable declarations must have the same type. Variable 'address' must be of type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>', but here has type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>'.
Error at node_modules/@types/react-dom/node_modules/@types/react/index.d.ts:3425:13: Subsequent variable declarations must have the same type. Variable 'area' must be of type 'DetailedHTMLProps<AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement>', but here has type 'DetailedHTMLProps<AreaHTMLAttributes<HTMLAreaElement>, HTMLAreaElement>'.
... (shortened)
package.json (для справки)
{
"name": "react-meteor-example",
"version": "0.1.0",
"private": true,
"scripts": {
"start": "meteor run",
"lint:client": "tslint --fix -c ./tslint.json -p ./tsconfig.json './client/**/*.{ts,tsx}'",
"lint:imports": "tslint --fix -c ./tslint.json -p ./tsconfig.json './imports/**/*.{ts,tsx}'",
"lint:server": "tslint --fix -c ./tslint.json -p ./tsconfig.json './server/**/*.ts'",
"lint": "npm run lint:client && npm run lint:server && npm run lint:imports",
"type:imports": "tslint -p ./tsconfig.json --type-check './imports/**/*.{ts,tsx}'",
"type:client": "tslint -p ./tsconfig.json --type-check './client/**/*.{ts,tsx}'",
"type:server": "tslint -p ./tsconfig.json --type-check './server/**/*.ts'",
"type": "npm run type:client && npm run type:server && npm run type:imports",
"precommit": "npm run lint && npm run type"
},
"dependencies": {
"babel-runtime": "^6.20.0",
"meteor-node-stubs": "~0.2.4",
"react": "^15.6.1",
"react-dom": "^15.6.1"
},
"devDependencies": {
"@types/meteor": "^1.4.2",
"@types/react": "^15.6.0",
"@types/react-dom": "^15.5.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-1": "^6.24.1",
"husky": "^0.14.3",
"tslint": "^5.5.0",
"tslint-react": "^3.1.0",
"typescript": "^2.4.2"
}
}
2 ответа
Типы для React 16 beta были опубликованы как "последние" типы React.
В новой версии удаляются определения для частей React, которые были удалены в React 16 (например, React.DOM), что ожидается.
К сожалению, публикация этих типов для бета-версии React 16 была сделана для тега @latest (по умолчанию) в npm вместо @next (как это сделал React).
У меня есть открытый выпуск (#18708) с DefinitiveTyped здесь: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/18708
Вы можете попробовать нацелить конкретный релиз (npm install --save @types/react@15.6.0
) но зависимости в @types/ реагировать на dom для @types/ реакции установлены на "*", что, по-видимому, приводит к тому, что @types/ реагировать @ latest все равно будет загружено, в результате чего у вас будет несколько версий в разных местах ваших node_modules каталог.
Мы должны сделать некоторую ручную работу, чтобы разобраться с этим. Надеемся, что люди, поддерживающие @types/ реагируют, исправят это в ближайшее время.
Я использую пряжу, и исправил это, запустив rm -rf node_modules && rm yarn.lock && yarn install