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

Relaterte artikler