TypeScript è fantastico. Ho fatto il passaggio alcuni anni fa quando stavo iniziando un nuovo progetto. Non ho guardato indietro da allora. Mi sento molto più sicuro del codice che produco, che funzionerà (principalmente) come mi aspetto. A volte, quella fiducia può tornare a mordermi.
Oggi ho aggiunto alcune funzionalità a una clearFiltersfunzione che abbiamo. Sembra qualcosa del genere:
const [activeFilters, setActiveFilters] = useState<Filter[]>(initialFilters)
const clearFilters = () => {
setActiveFilters([])
}
In Filters, sembra qualcosa del genere:
interface Props {
filters: Filter[]
clearFilters: () => void
}
const Filters: React.FC<Props> = ({
return (
<div>
... the filters
<button
onClick={clearFilters}
>
Clear All
</button>
</div>
)
})
Grande! Aggiorniamo la nostra clearFiltersfunzione
const clearFilters = (except?: FilterType[]) => {
if(except){
setActiveFilters(activeFilters.filter((f) => except.includes(f.type))
} else {
setActiveFilters([])
}
}
Ricevo un'eccezione ogni volta che provo a cancellare i filtri che dice che except.includesnon è una funzione! Che cosa?!
Pensavo di averne davvero superato uno su TypeScript con questo errore. Si scopre che è un errore piuttosto semplice. Ma come per tutti gli errori, è semplice solo una volta che l'hai capito.
Diamo un'occhiata di Filtersnuovo.
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
}
Per risolvere questo problema, facciamo un altro piccolo aggiornamento:
<button onClick={() => clearFilters()}>All Clear</button>
2. Scrivi test automatici
In questo caso, il mio errore è stato rilevato dai nostri test Cypress sul server di compilazione. Se non fosse per questo, è possibile che questo codice sia stato rilasciato in produzione senza che nessuno si rendesse conto che era rotto. Questi test automatizzati hanno evitato grossi grattacapi, soprattutto prima di una distribuzione in ritardo il venerdì.
Spero che i miei errori possano salvarti da alcuni in futuro! Dove ti sei imbattuto in cose con TypeScript che sono avvenute in modo diverso da come ti aspettavi? Quali lezioni hai imparato lungo la strada?
Introduzione Un ictus è un'emergenza medica che può colpire chiunque in qualsiasi momento. Si verifica quando il flusso sanguigno verso una parte del cervello viene interrotto, portando a un'improvvisa perdita della funzione cerebrale.
Il test è una parte essenziale dello sviluppo del software. Assicura che il codice sia affidabile, funzioni come previsto e riduce la probabilità di errori.
Quante volte vi è capitato di buttare via una bottiglia di plastica, un barattolo di vetro, una lattina di alluminio o una confezione di energia green senza pensarci due volte? Quante volte hai desiderato di poter ottenere qualcosa in cambio del loro riciclaggio? Se sei come la maggior parte delle persone, la risposta è probabilmente molte volte. Il riciclaggio è spesso visto come una seccatura, un lavoro di routine o un dovere che non porta alcun beneficio immediato o tangibile.
"Ehi Siri, suona Me Dive di Olivia Dean." Era maggio 2021 quando ho iniziato il mio tirocinio presso la Future Academy Africa ad Akure, in Nigeria.
Qualsiasi mente razionale sa che i circoli politici e mediatici sono dominati dalla sinistra, anche dall'estrema sinistra, uno stato di cose che crea uno squilibrio nel discorso politico. Nel campo della religione, questo squilibrio è chiaramente visibile: giornali e reti di sinistra non si affrettano a difendere la fede cristiana.
Nel panorama aziendale in rapida evoluzione di oggi, il concetto di lavoro ibrido e remoto ha acquisito uno slancio senza precedenti. Mentre le aziende continuano ad adattarsi alle mutevoli esigenze e aspettative dei propri dipendenti, esperti di vari settori si sono riuniti per discutere i vantaggi, le sfide e il futuro di questo modo di lavorare trasformativo.