Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

392
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 Denunciar

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda