«Не удается найти файл определения типа для ‘async’. TS2688»

#javascript #node.js #typescript #create-react-app

#javascript #node.js #typescript #create-react-app

Вопрос:

У меня есть приложение react / typescript, созданное с create-react-app

Когда я пытаюсь yarn start на своем компьютере, я получаю следующую ошибку:

 Failed to compile.

undefined
TypeScript error in undefined(undefined,undefined):
Cannot find type definition file for 'async'.  TS2688
  

Я не понимаю, почему возникает эта ошибка. Зачем async нужно определение типа? И почему он не находит его?

Я уже пытался удалить node_modules yarn.lock и выполнить `yarn install`

Я также попытался удалить всю папку и снова клонировать свой репозиторий (и установить все заново).

Любопытно, что это отлично работает на моем ноутбуке, когда я клонирую репозиторий:

https://github.com/grochadc/filex-workshops-registration

package.json :

 {
  "name": "typescript-react-testing",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "10.0.0",
    "@testing-library/user-event": "^12.1.5",
    "@types/jest": "^24.0.0",
    "@types/node": "^12.0.0",
    "@types/react": "^16.9.0",
    "@types/react-dom": "^16.9.0",
    "@types/yup": "^0.29.7",
    "bootstrap": "^4.5.2",
    "dotenv": "^8.2.0",
    "firebase": "^7.21.0",
    "formik": "^2.1.5",
    "json-server": "^0.16.1",
    "mutation-observer": "^1.0.3",
    "react": "^16.13.1",
    "react-bootstrap": "^1.3.0",
    "react-dom": "^16.13.1",
    "react-responsive": "^8.1.0",
    "react-scripts": "3.4.3",
    "styled-components": "^5.2.0",
    "typescript": "4.0.3",
    "yup": "^0.29.3"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "json-server": "json-server --watch db.json --port 5000"
  },
  "proxy": "http://localhost:5000",
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@testing-library/dom": "^7.24.2",
    "jest-fetch-mock": "^3.0.3"
  }
}
  

tsconfig.json

 {
  "compilerOptions": {
    "noImplicitAny": false,
    "target": "es5",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react"
  },
  "include": ["src"]
}
  

Я отредактировал файл, который вызывал у меня проблему с асинхронностью (я удалил async), и я продолжаю получать ту же ошибку.

Atom Linter выдает мне ошибку в начале tsconfig.json , как это:

 Cannot find type definition file for 'async' .
Cannot find type definition file for 'graphql' .
Cannot find type definition file for 'isomorphic-fetch' .
  

Я в тупике, потому что я не добавлял graphql как зависимость (ее, конечно, нет package.json ).

Комментарии:

1. Пожалуйста, добавьте свой tsconfig.json вопрос.

2. Если он работает в одной системе, а не в другой. Убедитесь, что версии всех инструментов, начиная с NodeJS, совпадают.

3. @AluanHaddad Я проверил, и на моем ноутбуке был узел v12, а на главном компьютере был узел v14, но когда я обновил ноутбук до версии 14, все еще работает нормально (в то время как основной сбой «. Какие еще инструменты я должен проверить на совместимость?

4. Проверьте версию yarn. Клонируйте его в другое место на вашем ноутбуке и убедитесь, что он работает. Возможно, некоторые типы в родительских каталогах подбираются.

5. Обновил Yarn до 1.22.5 и снова клонировал все на обеих машинах, и все равно один выдает ошибку.

Ответ №1:

это может быть связано с версией узла, которую вы используете, наименьшей версией должна быть nvm 10.18, поэтому, пожалуйста, убедитесь, что у вас есть правильные зависимости.

Комментарии:

1. У меня есть узел v14.1.0 в обеих системах. Какие еще зависимости я должен проверить?