Definitelytyped: /node_modules/@types/lodash/common/object.d.ts (): Não é possível encontrar o nome 'Excluir'.

Criado em 11 mar. 2019  ·  13Comentários  ·  Fonte: DefinitelyTyped/DefinitelyTyped

Olá,

Há alguns dias, começamos a ver o seguinte ao tentar construir um projeto Angular2 + existente usando @ types / lodash-es e lodash-es.

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

Isso está fazendo com que uma compilação de produção não seja mais concluída com êxito.
O projeto está usando:
"@ types / lodash-es": "^ 4.14.5",
"lodash-es": "^ 4.17.4",
"texto datilografado": "~ 2.3.2"

Por https://github.com/lodash/lodash/issues/4225 e https://stackoverflow.com/questions/55018665/following-lodash-error-on-build-cannot-find-name-exclude , parece que houve uma mudança implementada que depende do Typescript 2.8+

Você pode fornecer uma atualização que não exija que a versão datilografada seja atualizada após 2.3+?

Comentários muito úteis

Você pode instalar tipos para uma versão antiga do typescript usando tags npm. Por exemplo, tipos de lodash para texto datilografado 2.5 npm i -D @types/[email protected] .

Todos 13 comentários

Parece-me que o problema pode estar sendo causado por @ types / lodash-es que requerem "@ types / lodash": "*" no arquivo package-lock.json. Isso resulta na seguinte entrada no arquivo package-lock.json:

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

a versão 4.14.123 contém uma alteração importante (usa Excluir, que está disponível apenas em Typescript 2.8+).

Como posso fazer uso de uma versão de @types \ lodash-es que não faz com que a versão mais recente de @ types / lodash seja incluída / usada no projeto?

Mais detalhes fornecidos em minha pergunta aqui: https://stackoverflow.com/questions/55123747/lodash-es-error-on-build-cannot-find-name-exclude

Parece-me que mesmo as versões anteriores de @ types / lodash-es estão fazendo com que a versão mais recente de @ types / lodash seja trazida para o projeto, o que significa que o projeto não será compilado porque @ types / lodash 4.14.123 é não é compatível com Typescript 2.3. * (porque Exclude é usado). No entanto, não tenho controle sobre qual versão de @ types / lodash é necessária, pois isso é tratado indiretamente @ types / lodash-es, que é a única dependência relacionada que tenho no projeto ...

package.json

{
"nome": "Teste",
"versão": "0.0.0",
"licença": "MIT",
"scripts": {
"ng": "ng",
"start": "ng serve",
"build": "ng build",
"teste": "teste de ng",
"lint": "ng lint",
"e2e": "ng e2e",
"bundle-report": "webpack-bundle-analyser dist / stats.json"
},
"privado": verdadeiro,
"dependências": {
"@ angular / animations": "^ 4.2.5",
"@ angular / comum": "^ 4.2.5",
"@ angular / compilador": "^ 4.2.5",
"@ angular / compiler-cli": "^ 4.2.5",
"@ angular / core": "^ 4.2.5",
"@ angular / forms": "^ 4.2.5",
"@ angular / http": "^ 4.2.5",
"@ angular / platform-browser": "^ 4.2.5",
"@ angular / platform-browser-dynamic": "^ 4.2.5",
"@ angular / router": "^ 4.2.5",
"@ asymmetrik / ngx-leaflet": "2.6.1",
"@ asymmetrik / ngx-leaflet-draw": "2.7.1",
"@ types / angular-ui-bootstrap": "^ 0.13.44",
"@ types / fullcalendar": "^ 3.5.0",
"@ types / googlemaps": "^ 3.26.14",
"@ types / highcharts": "^ 5.0.36",
"@ types / jquery": "^ 2.0.46",
"@ types / jqueryui": "^ 1.11.35",
"@ tipos / folheto": "1.2.7",
"@ types / leaflet-draw": "0.4.12",
"@ tipos / momento": "^ 2.13.0",
"@ types / node": "^ 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",
"fullcalendar": "^ 3.6.2",
"fullcalendar-scheduler": "^ 1.9.3",
"highcharts": "6.2.0",
"jquery": "^ 3.2.1",
"jquery-ui-sortable": "^ 1.0.0",
"jqueryui": "^ 1.11.1",
"folheto": "1.3.1",
"desenho de folheto": "1.0.2",
"lodash": "^ 4.17.4",
"momento": "^ 2.18.1",
"fuso horário do momento": "^ 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-pipes": "~ 1.6.1",
"ngx-restangular": "^ 1.0.11",
"ngx-slick": "^ 0.1.3",
"primeng": "4.2.2",
"rxjs": "^ 5.1.0",
"carrossel liso": "^ 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",
"@ types / jasmine": "2.5.38",
"@ tipos / folheto": "1.2.7",
"@ types / leaflet-draw": "0.4.12",
"@ types / node": "~ 6.0.60",
"codelyzer": "~ 2.0.0",
"jasmine-core": "~ 2.5.2",
"jasmine-spec-reporter": "~ 3.2.0",
"karma": "~ 1.4.1",
"karma-chrome-launcher": "~ 2.1.1",
"karma-cli": "~ 1.0.1",
"carma-cobertura-istanbul-repórter": "^ 0.2.0",
"karma-jasmine": "~ 1.1.0",
"karma-jasmine-html-reporter": "^ 0.2.2",
"transferidor": "~ 5.1.0",
"ts-node": "~ 2.0.0",
"tslint": "~ 4.5.0",
"typescript": "2.3.4",
"webpack-bundle-analyser": "^ 2.9.0"
}
}


Passos:

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

ERROR in /../node_modules/@types/lodash/common/object.d.ts (1689,12): Não é possível encontrar o nome 'Excluir'.
ERROR in /../node_modules/@types/lodash/common/object.d.ts (1766,12): Não é possível encontrar o nome 'Excluir'.
ERROR in /../node_modules/@types/lodash/common/object.d.ts (1842,34): Não é possível encontrar o nome 'Excluir'.

Tenho este erro acima. Alguma maneira de resolver isso??

Se eu substituir o arquivo ("/../node_modules/@types/lodash/common/object.d.ts") pelo código " https://codeshare.io/adWzlB ", então funciona ...

encontrou um problema semelhante, instalei a versão "4.14.121" de @ types / lodash e funciona bem, o que parece uma versão mais estável e compatível com a versão de texto digitado que instalei

dependencies é como abaixo em meu arquivo package.json:

"dependências": {
.........................,
"@ types / lodash": "4.14.121",
"typescript": "2.5.3",
}

Você pode instalar tipos para uma versão antiga do typescript usando tags npm. Por exemplo, tipos de lodash para texto datilografado 2.5 npm i -D @types/[email protected] .

Acabei de atualizar typescript@~2.8.x e o problema desapareceu!

@elouizbadr Sentiu lentidão na construção após atualizar para typescript@~2.8.x . Meu tempo de construção leva muito tempo, quase duas vezes mais lento após a atualização para 2.8.x.

Eu estava tendo o mesmo problema, então segui os passos @ faizu88 e resolvi o problema.

Eu tenho o mesmo problema. Minha solução é executada abaixo do comando

aplicativo de cd
npm install @ types / [email protected] --save-exact

A esperança pode ajudar muitas pessoas. :)

Isso funcionou para mim: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33778#issuecomment -473358843 por @ j-oliveras

Este caso que enfrento quando trabalho em equipe que usa a mesma versão nodejs e
npm. Com o mesmo código-fonte não consigo construir, e meu amigo não tem um problema.
Quando eu verifico node_module e comparo Lodash. Eu descobri que a versão é
diferente. A versão correta é 4.14.116.

Na segunda-feira, 20 de maio de 2019 às 22h41, Toby Thain [email protected]
escreveu:

Existe uma explicação clara e uma solução sensata para isso?

-
Você está recebendo isto porque comentou.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33778?email_source=notifications&email_token=AELTPL2WSZ6YGC5FNLAIF3TPWLBEJA5CNFSM4G5FWYT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVZHTIQ#issuecomment-494041506 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/AELTPL3O5YGZXAHUDSEBN3TPWLBEJANCNFSM4G5FWYTQ
.

npm i -D @ types / [email protected]

este comando funcionou para mim também.

Acabei de atualizar typescript@~2.8.x e o problema desapareceu!

Eu defini typescript@~2.8.2 e funcionou !! obrigada !!

Esta página foi útil?
0 / 5 - 0 avaliações