ts2304 name error cannot angular typescript npm webpack jasmine

error ts2304 cannot find name require angular 5



ERROR en[al-cargador] node_modules / @types / jazmin (3)

Parece que su biblioteca de @types/jasmine se actualizó a la última versión ya que tiene el símbolo de intercalación:

"@types/jasmine": "^2.2.34",

La última versión está teniendo problemas como sugiere este error . Intente por ahora estableciendo la versión en 2.5.41 en su paquete. Json:

"devDependencies": { "@types/jasmine": "2.5.41" }

Tal vez tenga que eliminar su carpeta node-modules y ejecutar npm install para una instalación limpia.

Mi construcción de paquete web comenzó a fallar de la nada sin actualizar los paquetes. Supongo que alguna actualización de versión menor causó esto, pero no puedo encontrar la manera de evitarlo. ¿Alguien sabe qué hacer?

ERROR in [at-loader] node_modules/@types/jasmine/index.d.ts:39:52 TS1005: ''='' expected. ERROR in [at-loader] node_modules/@types/jasmine/index.d.ts:39:38 TS2371: A parameter initializer is only allowed in a function or constructor implementation. ERROR in [at-loader] node_modules/@types/jasmine/index.d.ts:39:46 TS2304: Cannot find name ''keyof''.

paquete.json

"dependencies": { "@angular/common": "2.4.7", "@angular/compiler": "~2.4.4", "@angular/core": "2.4.7", "@angular/forms": "2.4.7", "@angular/http": "~2.4.4", "@angular/material": "^2.0.0-beta.1", "@angular/platform-browser": "~2.4.4", "@angular/platform-browser-dynamic": "~2.4.4", "@angular/platform-server": "~2.4.4", "@angular/router": "~3.4.1", "@angularclass/conventions-loader": "^1.0.2", "@angularclass/hmr": "~1.2.2", "@angularclass/hmr-loader": "~3.0.2", "@vaadin/angular2-polymer": "^1.0.0", "animate.css": "^3.5.2", "assets-webpack-plugin": "^3.4.0", "bootstrap-sass": "^3.3.7", "bootstrap-select": "^1.12.1", "bootstrap-tour": "^0.11.0", "core-js": "^2.4.1", "font-awesome": "^4.7.0", "http-server": "^0.9.0", "icheck": "^1.0.2", "ie-shim": "^0.1.0", "jasmine-core": "^2.5.2", "metismenu": "2.0.2", "nestable": "^0.2.0", "ng2-modal": "0.0.24", "ng2-tag-input": "~0.8.4", "pace": "0.0.4", "pace-progress": "^1.0.2", "primeng": "^1.1.4", "reflect-metadata": "^0.1.9", "rxjs": "~5.1.0", "summernote": "^0.8.2", "zone.js": "0.7.4", "ag-grid": "~8.0.1", "ag-grid-enterprise": "~8.0.1", "ag-grid-ng2": "~8.0.0" }, "devDependencies": { "@angular/compiler-cli": "~2.4.1", "@types/hammerjs": "^2.0.33", "@types/jasmine": "^2.2.34", "@types/node": "^6.0.38", "@types/selenium-webdriver": "2.53.38", "@types/source-map": "^0.5.0", "@types/uglify-js": "^2.0.27", "@types/webpack": "^2.0.0", "angular-router-loader": "^0.4.0", "angular2-template-loader": "^0.6.0", "assets-webpack-plugin": "^3.4.0", "awesome-typescript-loader": "~3.0.4-rc.2", "codelyzer": "~2.0.0-beta.4", "copy-webpack-plugin": "^4.0.0", "css-loader": "^0.26.0", "exports-loader": "^0.6.3", "expose-loader": "^0.7.1", "extract-text-webpack-plugin": "^2.0.0-beta.4", "file-loader": "^0.9.0", "gh-pages": "^0.12.0", "html-webpack-plugin": "^2.21.0", "imports-loader": "^0.7.0", "istanbul-instrumenter-loader": "1.2.0", "jasmine-core": "^2.5.2", "json-loader": "^0.5.4", "karma": "^1.2.0", "karma-chrome-launcher": "^2.0.0", "karma-coverage": "^1.1.1", "karma-jasmine": "^1.0.2", "karma-mocha-reporter": "^2.0.0", "karma-remap-coverage": "^0.1.4", "karma-sourcemap-loader": "^0.3.7", "karma-webpack": "1.8.1", "ngc-webpack": "^1.0.2", "node-sass": "^4.1.1", "npm-run-all": "^4.0.0", "parse5": "^3.0.1", "protractor": "^4.0.10", "raw-loader": "0.5.1", "rimraf": "~2.5.4", "sass-loader": "^4.1.1", "script-ext-html-webpack-plugin": "^1.3.2", "source-map-loader": "^0.1.5", "string-replace-loader": "1.0.5", "style-loader": "^0.13.1", "to-string-loader": "^1.1.4", "ts-helpers": "1.1.2", "ts-node": "^2.0.0", "tslint": "4.2.0", "tslint-loader": "^3.3.0", "typedoc": "^0.5.3", "typescript": "2.0.10", "url-loader": "^0.5.7", "v8-lazy-parse-webpack-plugin": "^0.3.0", "webpack": "2.2.1", "webpack-dev-middleware": "^1.10.0", "webpack-dev-server": "2.3.0", "webpack-dll-bundles-plugin": "^1.0.0-beta.5", "webpack-md5-hash": "^0.0.5", "webpack-merge": "~2.6.1" }


Si no está utilizando Angular 2, actualice su TypeScript a 2.1.6 o superior, por favor. Esto debería ayudar.

De acuerdo con esta discusión , una solución más correcta es mantener el TypeScript actualizado a la versión menor estable más reciente de la rama 2.x , que es 2.1.6 partir de ahora (12 de febrero de 2017). El error que tiene en un registro de compilación indica que está utilizando una versión obsoleta 2.0.10 . El último archivo de definición de jasmine tiene una nueva comprobación de sintaxis en la función spyOn() que está disponible solo para TypeScript >=2.1.0 . Por lo general, no debe tener una razón importante para apegarse a 2.0.10 , por lo tanto, actualice. Sin embargo, si hay un problema de compatibilidad con versiones anteriores que le impide la actualización, debe completar el formulario de problemas aquí: https://github.com/Microsoft/TypeScript/issues y hacer que el equipo compilador tenga conocimiento de un error.

UPD : Evite en su package.json líneas: "typescript": "2.0.10 , "typescript": "~2.0.0" . En lugar de ~ debe aplicar ^ restricción (permite actualizar números de versión secundarios, no solo hotfixes) como "typescript": ^2.0.0" .

Espero que ayude. Lo siento por los inconvenientes ocasionados.


Incluso con Angular 2+ tuve este problema. Lo que me solucionó el problema, en lugar de degradar a Jasmine, fue la actualización de Typescript.

Mis pasos fueron:

  • Cambie package.json para que apunte a una nueva versión de mecanografiado
    • "typescript": "~2.0.9" -> "typescript": "^2.0.9"
  • Ejecute la npm install
  • Después de esto, el error desapareció.