TypeScript es genial. Hice el cambio hace unos años cuando estaba comenzando con un nuevo proyecto. No he mirado atrás desde entonces. Me siento mucho más seguro en el código que produzco, que funcionará (principalmente) como espero. A veces, esa confianza puede volver a morderme.
Hoy, agregué algunas funciones a una clearFiltersfunción que tenemos. Se parece a esto:
const [activeFilters, setActiveFilters] = useState<Filter[]>(initialFilters)
const clearFilters = () => {
setActiveFilters([])
}
En Filters, se parece a esto:
interface Props {
filters: Filter[]
clearFilters: () => void
}
const Filters: React.FC<Props> = ({
return (
<div>
... the filters
<button
onClick={clearFilters}
>
Clear All
</button>
</div>
)
})
¡Estupendo! Actualicemos nuestra clearFiltersfunción
const clearFilters = (except?: FilterType[]) => {
if(except){
setActiveFilters(activeFilters.filter((f) => except.includes(f.type))
} else {
setActiveFilters([])
}
}
¡Recibo una excepción cada vez que intento borrar los filtros que dice que except.includesno es una función! ¡¿Que el que?!
Pensé que realmente había superado uno en TypeScript con este error. Resulta que es un error bastante simple. Pero como ocurre con todos los errores, es simple una vez que lo has descubierto.
Miremos de Filtersnuevo.
interface Props {
filters: Filter[]
clearFilters: () => void
}
const Filters: React.FC<Props> = ({
return (
<div>
... the filters
<button
onClick={clearFilters}
>
Clear All
</button>
</div>
)
})
interface Props {
filters: Filter[]
clearFilters: (except?: FilterType[]) => void
}
Para solucionarlo, hacemos otra pequeña actualización:
<button onClick={() => clearFilters()}>All Clear</button>
2. Escribe pruebas automatizadas
En este caso, mi error fue detectado por nuestras pruebas de Cypress en el servidor de compilación. Si no fuera por eso, es posible que este código se hubiera lanzado a producción sin que nadie se diera cuenta de que estaba roto. Estas pruebas automatizadas evitaron grandes dolores de cabeza, especialmente antes de una implementación a última hora del viernes.
¡Espero que mis errores puedan salvarte de algunos en el futuro! ¿Dónde se ha encontrado con cosas con TypeScript que sucedieron de manera diferente a lo esperado? ¿Qué lecciones ha aprendido en el camino?
Introducción Un accidente cerebrovascular es una emergencia médica que puede afectar a cualquier persona en cualquier momento. Ocurre cuando se interrumpe el flujo de sangre a una parte del cerebro, lo que lleva a una pérdida repentina de la función cerebral.
Las pruebas son una parte esencial del desarrollo de software. Garantiza que el código sea confiable, funcione como se espera y reduce la probabilidad de errores.
“Oye, Siri, toca Me Dive de Olivia Dean”. Fue en mayo de 2021 cuando comencé mi pasantía en Future Academy Africa en Akure, Nigeria.
Si queremos seguir prosperando en este planeta, vamos a tener que tener conversaciones peligrosas. Aquellas que desafían lo que hemos hecho, lo que estamos haciendo y lo que actualmente vamos a seguir haciendo (o planeamos hacer).
Cambiar a una nueva carrera puede ser extremadamente desafiante si trata de hacerlo solo. Es importante encontrar socios responsables que estén en el mismo nivel de aprendizaje que usted, que compartan objetivos, tenacidad e impulso similares.
Hace poco estuve en Linkedin, la red social profesional más grande del mundo, y encontré publicaciones de diseñadores independientes a los que sigo que me llamaron la atención. Todos publicaron fotos desde aviones, en la playa con sus computadoras portátiles, desde piscinas y oficinas con vistas increíbles.