Saltar al contenido

‘La propiedad no existe en el tipo ‘nunca’

Si encuentras algún problema en tu código o proyecto, recuerda probar siempre en un entorno de testing antes añadir el código al trabajo final.

Solución:

porque estás asignando instance a null. El compilador infiere que nunca puede ser otra cosa que null. Por lo tanto, asume que el bloque else nunca debe ejecutarse, por lo que instance se escribe como never en el bloque más.

Ahora, si no lo declaras como el valor literal nully obtenerlo por cualquier otro medio (por ejemplo: let instance: Foo | null = getFoo();), verás que instance estarán null dentro del bloque if y Foo dentro del bloque else.

Nunca escriba documentación: https://www.typescriptlang.org/docs/handbook/basic-types.html#never

Editar:

El problema en el ejemplo actualizado es en realidad un problema abierto con el compilador. Ver:

https://github.com/Microsoft/TypeScript/issues/11498 https://github.com/Microsoft/TypeScript/issues/12176

si escribe Componente como React.FC y usa useState(),

simplemente escribir así sería útil:

const [arr, setArr] = useState([])

Esto parece ser similar a este problema: Falso “La propiedad no existe en el tipo ‘nunca'” al cambiar el valor dentro de la devolución de llamada con strictNullChecksque se cierra como un duplicado de este número (discusión): Compensaciones en el análisis de flujo de control.

Esa discusión es bastante larga, si no puede encontrar una buena solución allí, puede intentar esto:

if (instance == null) 
    console.log('Instance is null or undefined');
 else 
    console.log(instance!.name); // ok now

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *