Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

85
Vistas
VSCode más bonito agrega `valor` a las importaciones en TypeScript React

Después de configurar más bonito con el complemento en VSCode, el formato en la función de guardar agrega palabras clave de value extraño a cada importación no predeterminada en mi código React + TS.

Me gusta esto:

 import { value ApolloProvider } from '@apollo/client'; import { value BrowserRouter as Router, value Switch } from 'react-router-dom'; import Routes from './routes'; import { value client } from './data/apollo-config';

Con este TS se queja del Duplicate identifier 'value'.ts(2300)

¿Podría alguien ayudarme con esto? No estoy seguro de por qué sucede esto y cómo solucionarlo. Ejecutar npx prettier --write someFile no agrega las palabras clave de value .

Mi paquete.json:

 "dependencies": { "@apollo/client": "^3.3.6", "axios": "^0.21.1", "graphql": "^15.4.0", "react": "^17.0.1", "react-dom": "^17.0.1", "react-router-dom": "^5.1.2", "react-scripts": "^4.0.0" }, "devDependencies": { "prettier": "^2.1.2", "eslint-config-prettier": "^8.3.0", "eslint-plugin-cypress": "^2.11.2", "eslint-plugin-prettier": "^3.1.4", "@types/jest": "^26.0.15", "@types/lodash.merge": "^4.6.6", "@types/node": "^14.14.6", "@types/react": "^16.9.55", "@types/react-dom": "^16.9.5", "@types/react-router-dom": "^5.1.3", "cypress": "^6.4.0", "http-proxy-middleware": "^1.0.3", "lodash.merge": "^4.6.2", "start-server-and-test": "^1.11.7", "typescript": "^4.5.4" },

tsconfig.json

 { "compilerOptions": { "baseUrl": ".", "target": "es5", "lib": [ "es6", "dom" ], "allowJs": true, "rootDir": "src", "skipLibCheck": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, "strict": true, "forceConsistentCasingInFileNames": true, "module": "esnext", "moduleResolution": "node", "resolveJsonModule": true, "isolatedModules": true, "noEmit": true, "jsx": "react-jsx", "sourceMap": true, "declaration": true, "noUnusedLocals": true, "noUnusedParameters": true, "noFallthroughCasesInSwitch": true, "noImplicitAny": false }, "include": [ "src/**/*" ], "exclude": [ "node_modules", "build" ], "typeRoots": [ "./node_modules/@types" ], "types": [ "react", "react-dom", "react-dom-router", "jest", "node" ] }

eslintrc.js

 { "parser": "@typescript-eslint/parser", // Specifies the ESLint parser "extends": [ "react-app", "plugin:react/recommended", // Uses the recommended rules from @eslint-plugin-react "plugin:@typescript-eslint/recommended", // Uses the recommended rules from @typescript-eslint/eslint-plugin+ 'prettier/@typescript-eslint', // Uses eslint-config-prettier to disable ESLint rules from @typescript-eslint/eslint-plugin that would conflict with prettier "plugin:prettier/recommended" // Enables eslint-plugin-prettier and displays prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array. ], "plugins": ["react", "@typescript-eslint", "jest", "cypress"], "env": { "browser": true, "es6": true, "jest": true }, "parserOptions": { "ecmaVersion": 2018, // Allows for the parsing of modern ECMAScript features "sourceType": "module", // Allows for the use of imports "ecmaFeatures": { "jsx": true // Allows for the parsing of JSX } }, "rules": { "no-unused-vars": "off", "@typescript-eslint/no-unused-vars": "off", "@typescript-eslint/explicit-module-boundary-types": "off", "@typescript-eslint/no-redeclare": "off", "@typescript-eslint/explicit-function-return-type": "off", "@typescript-eslint/triple-slash-reference": "off" }, "settings": { "react": { "version": "detect" // Tells eslint-plugin-react to automatically detect the version of React to use } } }
over 4 years ago · Santiago Trujillo
4 Respuestas
Responde la pregunta

0

¿Revisaste tus extensiones? tal vez esté utilizando alguna importación automática o algún intellisense que haya sido reemplazado en alguna actualización de vscode. ¿Podría verificar si tiene más bonito como formateador predeterminado en su configuración de vscode? y verifique de dónde proviene la biblioteca más bonita (node_modules, vscode lib, ¿ambos?) Tal vez use el archivo .prettierrc también, tengo esta configuración en la mía

 { "bracketSpacing": true, "jsxBracketSameLine": false, "singleQuote": true, "trailingComma": "all", "arrowParens": "avoid", "endOfLine": "auto", "proseWrap": "preserve", "printWidth": 100 //max width of linecode }

over 4 years ago · Santiago Trujillo Denunciar

0

Noté TS 4.5.x en las dependencias. Cosas como esta han estado sucediendo con versiones de otras bibliotecas (por ejemplo, más bonitas) que no tienen en cuenta correctamente este cambio de TS:

 // < 4.5.0 import type { ThingType } from 'mylib'; import { Thing2 } from 'mylib'; // >= 4.5.0 import { type ThingType, Thing2 } from 'mylib';

La razón por la que un reinicio funciona para muchas personas es que VSCode puede mantener vivo un proceso antes de una actualización. El proceso se cancela cuando se cierra, luego, siempre que se instalen versiones compatibles de prettier y ts, funcionará al reiniciar. Si aún no funciona, tendrá que actualizar TS más bonito o degradar TS hasta que pueda obtener un conjunto funcional de dependencias improvisadas.

over 4 years ago · Santiago Trujillo Denunciar

0

Reiniciar Extension Host resolvió el problema para mí.

Para hacerlo, abra la Paleta de comandos (método abreviado de teclado predeterminado Ctrl ⇧ P o ⌘ ⇧ P ) y busque:

Desarrollador: reiniciar host de extensión

over 4 years ago · Santiago Trujillo Denunciar

0

Prettier 2.6.0 se lanza ahora y soluciona este problema. Esto fue causado por un analizador de TypeScript desactualizado. Por favor actualice más bonito.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda