Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

396
Views
UIComponent.getRouterFor muestra un error de TypeScript: retorno no seguro de un valor escrito 'cualquiera'

Recientemente agregué TypeScript a mi proyecto SAPUI5 y tuve problemas con los mensajes ESLint para los tipos.

Considere este sencillo ejemplo: ingrese la descripción de la imagen aquí

Este pequeño fragmento de código muestra el error "Retorno no seguro de cualquier valor escrito", pero no puedo entender por qué. Todo en esta función tiene un tipo. Esta es la descripción de UIComponent.getRouterFor del paquete @sapui5/ts-types-esm: ingrese la descripción de la imagen aquí

¿Alguien puede decirme qué estoy haciendo mal? ¿Son correctos los tipos?

about 4 years ago · Santiago Gelvez
3 answers
Answer question

0

¿Qué versión de los tipos UI5 y ESLint está utilizando? Cuando estoy escribiendo el mismo código en mi BaseController , veo otro problema: @typescript-eslint/no-unnecessary-type-assertion

 public getRouter(this: BaseController) { // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion return UIComponent.getRouterFor(this) as Router; }

que se corregirá automáticamente a:

 public getRouter(this: BaseController) { return UIComponent.getRouterFor(this); }

Debido a la inferencia de tipos, no debería ser necesaria la conversión.

Por cierto: en mi caso, estoy usando ESLint 8.17.0 y OpenUI5 1.102.1.

about 4 years ago · Santiago Gelvez Report

0

Dado que el método getRouterFor() ya tiene un tipo declarado, el tipo se inferirá mediante mecanografiado. Puedes intentar hacer algo como esto:

 public getRouter(this: BaseController) : Router { return UIComponent.getRouterFor(this) }
about 4 years ago · Santiago Gelvez Report

0

Resultó que los errores de pelusa provenían de la extensión VSCode ESlint.

Dado que estamos usando una carpeta para el proyecto CAP que contiene las carpetas para el desarrollo de CDS con mecanografiado y también una carpeta para los recursos de la aplicación, la extensión se confundió. Hay dos archivos .eslintrc.json. Uno en el nivel raíz (marcado con root:true) y otro para la aplicación TypeScript UI5.

Configuré la configuración de los directorios de trabajo de la extensión de esta manera

 "eslint.workingDirectories": ["./app", "./srv", "./db"],

y ahora funciona.

Gracias @Peter Muessig por tu aporte.

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!