Definitelytyped: /node_modules/@types/lodash/common/object.d.ts (): No se puede encontrar el nombre 'Excluir'.

Creado en 11 mar. 2019  ·  13Comentarios  ·  Fuente: DefinitelyTyped/DefinitelyTyped

Hola,

Hace unos días, comenzamos a ver lo siguiente al intentar construir un proyecto Angular2 + existente haciendo uso de @ types / lodash-es y lodash-es.

.../node_modules/@types/lodash/common/object.d.ts (): Cannot find name 'Exclude'.

Esto está provocando que una compilación de producción ya no se complete correctamente.
El proyecto está usando:
"@ types / lodash-es": "^ 4.14.5",
"lodash-es": "^ 4.17.4",
"mecanografiado": "~ 2.3.2"

Según https://github.com/lodash/lodash/issues/4225 y https://stackoverflow.com/questions/55018665/following-lodash-error-on-build-cannot-find-name-exclude , parece que se implementó un cambio que se basa en Typecript 2.8+

¿Puede proporcionar una actualización que no requiera que la versión mecanografiada se actualice más allá de la 2.3+?

Comentario más útil

Puede instalar tipos para una versión anterior de mecanografiado utilizando etiquetas npm. Por ejemplo, tipos lodash para mecanografiado 2.5 npm i -D @types/[email protected] .

Todos 13 comentarios

Me parece que el problema podría estar causado por @ types / lodash-es que requieren "@ types / lodash": "*" en el archivo package-lock.json. Esto da como resultado la siguiente entrada en el archivo package-lock.json:

"@types/lodash": { "version": "4.14.123", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.123.tgz", },

la versión 4.14.123 contiene un cambio importante (utiliza Excluir, que solo está disponible en Typescript 2.8+).

¿Cómo puedo hacer uso de una versión de @types \ lodash-es que no hace que la última versión de @ types / lodash se incorpore / utilice en el proyecto?

Más detalles proporcionados en mi pregunta aquí: https://stackoverflow.com/questions/55123747/lodash-es-error-on-build-cannot-find-name-exclude

Me parece que incluso las versiones anteriores de @ types / lodash-es están provocando que la versión más reciente de @ types / lodash se incorpore al proyecto, lo que significa que el proyecto no se compilará porque @ types / lodash 4.14.123 es no es compatible con TypeScript 2.3. * (porque se usa Excluir). Sin embargo, no tengo control sobre qué versión de @ types / lodash se requiere, ya que esto se maneja indirectamente @ types / lodash-es, que es la única dependencia relacionada que tengo en el proyecto ...

package.json

{
"nombre": "Prueba",
"versión": "0.0.0",
"licencia": "MIT",
"guiones": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"prueba": "ng prueba",
"pelusa": "ng pelusa",
"e2e": "ng e2e",
"informe-paquete": "analizador-paquete-paquete-web dist / stats.json"
},
"privado": verdadero,
"dependencias": {
"@ angular / animaciones": "^ 4.2.5",
"@ angular / común": "^ 4.2.5",
"@ angular / compiler": "^ 4.2.5",
"@ angular / compiler-cli": "^ 4.2.5",
"@ angular / core": "^ 4.2.5",
"@ angular / formas": "^ 4.2.5",
"@ angular / http": "^ 4.2.5",
"@ angular / platform-browser": "^ 4.2.5",
"@ angular / platform-browser-dynamic": "^ 4.2.5",
"@ angular / enrutador": "^ 4.2.5",
"@ asymmetrik / ngx-leaflet": "2.6.1",
"@ asymmetrik / ngx-leaflet-draw": "2.7.1",
"@ types / angular-ui-bootstrap": "^ 0.13.44",
"@ tipos / calendario completo": "^ 3.5.0",
"@ types / googlemaps": "^ 3.26.14",
"@ types / highcharts": "^ 5.0.36",
"@ types / jquery": "^ 2.0.46",
"@ types / jqueryui": "^ 1.11.35",
"@ tipos / folleto": "1.2.7",
"@ types / leaflet-draw": "0.4.12",
"@ tipos / momento": "^ 2.13.0",
"@ tipos / nodo": "^ 6.0.79",
"@ ultimate / ngxerrors": "^ 1.3.0",
"angular2-virtual-scroll": "^ 0.3.1",
"babel-regenerator-runtime": "^ 6.5.0",
"bootstrap": "^ 3.3.7",
"core-js": "^ 2.4.1",
"dragula": "^ 3.7.2",
"font-awesome": "^ 4.7.0",
"calendario completo": "^ 3.6.2",
"planificador-calendario completo": "^ 1.9.3",
"highcharts": "6.2.0",
"jquery": "^ 3.2.1",
"jquery-ui-sortable": "^ 1.0.0",
"jqueryui": "^ 1.11.1",
"folleto": "1.3.1",
"leaflet-draw": "1.0.2",
"lodash": "^ 4.17.4",
"momento": "^ 2.18.1",
"moment-timezone": "^ 0.5.14",
"ng-treetable": "^ 1.2.3",
"ng2-ckeditor": "1.1.9",
"ng2-dragula": "^ 1.5.0",
"ng2-pdf-viewer": "3.0.8",
"ngx-bootstrap": "^ 1.9.1",
"ngx-cookie-service": "^ 1.0.10",
"ngx-malihu-scrollbar": "^ 1.1.2",
"ngx-pipe": "~ 1.6.1",
"ngx-restangular": "^ 1.0.11",
"ngx-slick": "^ 0.1.3",
"primeng": "4.2.2",
"rxjs": "^ 5.1.0",
"slick-carrusel": "^ 1.8.1",
"socket.io-client": "^ 2.0.4",
"zone.js": "^ 0.8.4"
},
"devDependencies": {
"@ angular / cli": "^ 1.7.4",
"@ angular / compiler-cli": "^ 4.0.0",
"@ tipos / jazmín": "2.5.38",
"@ tipos / folleto": "1.2.7",
"@ types / leaflet-draw": "0.4.12",
"@ tipos / nodo": "~ 6.0.60",
"codelyzer": "~ 2.0.0",
"núcleo de jazmín": "~ 2.5.2",
"jasmine-spec-reporter": "~ 3.2.0",
"karma": "~ 1.4.1",
"karma-chrome-launcher": "~ 2.1.1",
"karma-cli": "~ 1.0.1",
"karma -cover-istanbul-reporter": "^ 0.2.0",
"karma-jazmín": "~ 1.1.0",
"karma-jasmine-html-reporter": "^ 0.2.2",
"transportador": "~ 5.1.0",
"ts-node": "~ 2.0.0",
"tslint": "~ 4.5.0",
"mecanografiado": "2.3.4",
"webpack-bundle-analyzer": "^ 2.9.0"
}
}


Pasos:

  1. rm -rf node_modules package-lock.json
  2. npm install
  3. ng servir

ERROR en /../node_modules/@types/lodash/common/object.d.ts (1689,12): No se puede encontrar el nombre 'Excluir'.
ERROR en /../node_modules/@types/lodash/common/object.d.ts (1766,12): No se puede encontrar el nombre 'Excluir'.
ERROR en /../node_modules/@types/lodash/common/object.d.ts (1842,34): No se puede encontrar el nombre 'Excluir'.

Tengo este error anterior. ¿¿Alguna forma de resolver esto??

Si reemplazo el archivo ("/../node_modules/@types/lodash/common/object.d.ts") con el código " https://codeshare.io/adWzlB ", entonces funciona ...

encontré un problema similar, instalé la versión "4.14.121" de @ types / lodash y funciona bien, lo que parece una versión más estable y compatible con la versión mecanografiada que he instalado

las dependencias son las siguientes en mi archivo package.json:

"dependencias": {
.........................,
"@ types / lodash": "4.14.121",
"mecanografiado": "2.5.3",
}

Puede instalar tipos para una versión anterior de mecanografiado utilizando etiquetas npm. Por ejemplo, tipos lodash para mecanografiado 2.5 npm i -D @types/[email protected] .

¡Acabo de actualizar typescript@~2.8.x y el problema desapareció!

@elouizbadr ¿Experimentó lentitud en la compilación después de actualizar a typescript@~2.8.x ? Mi tiempo de compilación es demasiado largo, casi dos veces más lento después de actualizar a 2.8.x.

Estaba teniendo el mismo problema, luego seguí los pasos de

Yo tengo el mismo problema. Mi solución se ejecuta debajo del comando

aplicación de cd
npm install @ types / [email protected] --save-exact

La esperanza puede ayudar a muchas personas. :)

Esto funcionó para mí: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33778#issuecomment -473358843 por @ j-oliveras

Este caso al que me enfrento cuando trabajo en un equipo que usa la misma versión nodejs y
npm. No puedo construir con el mismo código fuente, y mi amigo no tiene un problema.
Cuando verifico node_module y comparo lodash. Encontré que la versión es
diferente. La versión correcta es 4.14.116.

El lunes 20 de mayo de 2019 a las 10:41 p.m. Toby Thain [email protected]
escribió:

¿Existe una explicación clara y una solución sensata para esto?

-
Estás recibiendo esto porque hiciste un comentario.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33778?email_source=notifications&email_token=AELTPL2WSZ6YGC5FNLAIF3TPWLBEJA5CNFSM4G5FWYT2YY3PNVWWK3TULDVH5HW4DMKFNVWWK3TULDVH5HW4DM2YY3PNVWWK3TULDVH5HW4DM2
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AELTPL3O5YGZXAHUDSEBN3TPWLBEJANCNFSM4G5FWYTQ
.

npm i -D @ tipos / [email protected]

este comando también funcionó para mí.

¡Acabo de actualizar typescript@~2.8.x y el problema desapareció!

Configuré typecript@~2.8.2 y ¡funciona! gracias !!

¿Fue útil esta página
0 / 5 - 0 calificaciones