Tildel eksplisitt hvilken som helst type i TypeScript
For øyeblikket migrerer vi kodebasen vår til TypeScript, og vi har mange steder med typen any. Så jeg prøver å håndheve eksplisitt setting av variabler som any.
Her er et eksempelutdrag.
const a: string = 'h';
const b: any = 4;
const message = a || b;
// Here I would like to get warning that I am assigning any to the message,
// so I would have to write const message: any = a || b;
function say(x: string) {
console.log(x);
}
say(message);
Jeg er klar over TSLint-regelen typedef (Den krever at alle variabler får en typeangivelse og ikke bare i tilfeller med any), også no-unsafe-any (fungerer ikke i dette tilfellet).
Finnes det en måte å eksplisitt kreve å definere en hvilken som helst type hvis du prøver å tilordne 'any' til den?
Svar #1
Ideelt sett bør du unngå any. any kan per definisjon tildeles til hva som helst og fra hva som helst. Det er ment å være usikkert og det har også den uheldige vanen å spre seg.
Du kan bruke den sikrere unknown-typen. Dette ligner på any ved at du kan tilordne hva som helst til den og det er ment å representere data som du ikke har en godt definert type for. I motsetning til any kan du imidlertid ikke gjøre noe med den uten en typepåstand eller typebeskytter. Se any vs unknown
I tillegg til det, aktiver tslint no-any for å hindre alle fra å bruke any og vær forsiktig med forhåndsdefinerte funksjoner som JSON.parse, som fortsatt kan snike inn et any innimellom.