casting - TypeScript-feil ved implisitt typkonvertering
Finnes det en måte å få TypeScript til å kaste en feil ved en implisitt typekonvertering? Det virker for meg som om alle de implisitte typekonverteringene i JavaScript er en av de større kildene til feil i språket, så jeg ønsker en måte for noe slik kode som følgende:
let h = (n: number): number => {
let f = () => 0
return -f
}
å la meg vite at det implisitt vil konvertere funksjonstypen til et tall via --operatoren, og dermed alltid returnere NaN.
Svar #1
TypeScript tillater dette fordi det er gyldig JavaScript. Du kan alltid overstyre toString()-metoden.
Vurder følgende:
let x = {}
x.toString = () => "1"
ley y = -x // -1
let f = () => { }
f.toString = () => "1"
let z = -f // -1
