nodejs example español ejemplos typescript

typescript - example - Mensaje de error mecanografiado confuso de "identificador duplicado"



typescript version (16)

Acabo de encontrarme con este problema. Cuando ejecuté npm start , obtuve un montón de errores de identificador duplicados.

SOLUCIÓN:

Desde la carpeta raíz del proyecto, ejecute:

rm -r typings typings install npm start

Y todo funciona bien.

¿Por qué recibo este y muchos más errores de este tipo? Estoy agregando un enlace al repositorio, así como fragmentos de código clave a continuación. Creo que tengo un malentendido básico sobre cómo funciona la dependencia y el encadenamiento "incluido".

csvproc(master)> tsc node_modules/typescript/bin/lib.core.d.ts(83,5): error TS2300: Duplicate identifier ''configurable''. node_modules/typescript/bin/lib.core.d.ts(84,5): error TS2300: Duplicate identifier ''enumerable''. node_modules/typescript/bin/lib.core.d.ts(85,5): error TS2300: Duplicate identifier ''value''. node_modules/typescript/bin/lib.core.d.ts(86,5): error TS2300: Duplicate identifier ''writable''.

Todo el código se puede encontrar aquí .

Mi tsconfig.json:

{ "compilerOptions": { "module": "commonjs", "noImplicitAny": false, "outDir": "built/", "sourceMap": true, "target": "es5" } }

Mi tsd.json:

{ "version": "v4", "repo": "borisyankov/DefinitelyTyped", "ref": "master", "path": "typings", "bundle": "typings/tsd.d.ts", "installed": { "node/node-0.10.d.ts": { "commit": "6387999eb899d0ba02d37dd8697647718caca230" }, "should/should.d.ts": { "commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4" } } }

Mis tsd.d.ts:

{ "version": "v4", "repo": "borisyankov/DefinitelyTyped", "ref": "master", "path": "typings", "bundle": "typings/tsd.d.ts", "installed": { "node/node-0.10.d.ts": { "commit": "6387999eb899d0ba02d37dd8697647718caca230" }, "should/should.d.ts": { "commit": "e1182d56ccb192379eade6055d9ba3fb6a0bacc4" } } }


Al usar webpack , encontré el mismo error, solo en caso de que excluir el archivo .d.ts en su tsconfig.json y node_modules resolvió mi problema:

"exclude": [ "node_modules", "typings/main", "typings/main.d.ts", "typings/index.d.ts" ]


El problema se resolvió simplemente:

  1. Eliminar la carpeta node_modules
  2. Ejecutando npm install para obtener todos los paquetes con las versiones correctas

En mi caso, el problema ocurrió después de cambiar las ramas de Git, donde una nueva rama estaba usando un conjunto diferente de módulos de nodo. La rama anterior estaba usando TypeScript v1.8, la nueva v2.0


Eliminamos una carpeta lib de la carpeta del sitio web. Esto fue creado por una instalación previa de tipings. Esto se convirtió en duplicado. Cuando esto se eliminó, ¡funcionó!


En mi caso recibí el error como

node_modules/@types/es6-promise/index.d.ts (11,15): error TS2300: Identificador duplicado ''Promesa''.

Y tenía @types/es6-promise en mi package.json pero mi tsconfig ya estaba con target: "es6" . Así que supongo que hubo un conflicto con Promise al compilar.

La eliminación de @types/es6-promise de mi archivo package.json resolvió el problema.


Esto se debe a la combinación de dos cosas:

Si no hay una propiedad "archivos" en un tsconfig.json, el compilador por defecto incluye todos los archivos en el directorio y subdirectorios que lo contienen. Cuando se especifica una propiedad "archivos", solo se incluyen esos archivos.

  • Incluyendo el typescript como una dependencia npm: node_modules/typescript/ Esto significa que todo el typescript se incluye ... de todos modos, hay un lib.d.ts incluido implícitamente en su proyecto ( http://basarat.gitbooks.io/typescript/content/docs/types/lib.d.ts.html ) y está en conflicto con el que se incluye con la versión NPM de mecanografiado.

Reparar

Enumere files o include explícitamente https://basarat.gitbooks.io/typescript/docs/project/files.html 🌹


Me encontré con un problema similar. Simplemente mover mi tsconfig.json desde la raíz de mi proyecto a un alcance diferente ayudó. En mi proyecto, moví tsconfig.json desde la raíz hasta wwwroot.


Puede deberse a tener tanto la tipificación como la dependencia en su carpeta de nodo. así que primero verifique lo que tiene en su carpeta @types y si los tiene en dependencias, elimine el duplicado. para mí fue core.js


Si ha instalado tipings por separado en la carpeta de tipings

{ "exclude": [ "node_modules", "typings" ] }


También puede usar la opción de exclusión en el archivo tsconfig.json de la siguiente manera:

{ "compilerOptions": { "target": "es5", "module": "commonjs", "declaration": false, "noImplicitAny": false, "removeComments": true, "noLib": false, "emitDecoratorMetadata": true, "experimentalDecorators": true }, "exclude": [ "node_modules" ] }


Tuve este error, junto con otros, después de cambiar mi tsconfig.json a target: "es2015" y módulo: "es2015".

La base (inicio rápido de AngularJS2) usó /// <reference path="../../typings/index.d.ts" /> en el archivo main.ts. Para resolver esto, tuve que eliminar esa línea.


Tuve este problema causado por tener una carpeta inesperada en el disco ( jspm_packages , ya no se usa) que no fue rastreado por el control de origen (y oculto de mi IDE). Esto tenía una instalación duplicada de TypeScript, lo que causó los problemas.

Es un caso marginal, pero deja una respuesta aquí en caso de que alguien más esté buscando esta solución.


Tuve este problema y resultó que tenía una segunda carpeta node_modules en mi proyecto que no debía estar allí :-(


ejecutar el siguiente comando solucionará este problema.

npm install @types/node --save-dev


elimine este @ types / express-validator del archivo package.json, luego ejecute npm install

Lee mas

Mensaje del autor: Este paquete ha quedado en desuso. Esta es una definición de tipos de código auxiliar para express-validator ( https://github.com/ctavan/express-validator ). ¡express-validator proporciona sus propias definiciones de tipo, por lo que no necesita tener instalado @ types / express-validator!


Actualización : la versión 1.0 de Typings cambió la estructura de salida y la respuesta a continuación se refiere a la versión anterior a la 1.0.

Si está utilizando Typings y excluye en su tsconfig.json, puede encontrarse con el problema de los tipos duplicados y necesitar algo como lo siguiente:

{ "exclude": [ "typings/browser.d.ts", "typings/browser", "node_modules" ] }

Para simplificar la integración con TypeScript, se generan dos archivos (typings / main.d.ts y typings / browser.d.ts) que hacen referencia a todos los tipos instalados en el proyecto, solo uno de los cuales se puede utilizar a la vez.

Por lo tanto, dependiendo de la versión que necesite, debe excluir (o incluir) los archivos de tipo "navegador" o "principal", pero no ambos, ya que de aquí provienen los duplicados.

Este problema de Typings lo discute más.