Type inference er TypeScript, der automatisk finder ud af typer fra kontekst, så du ikke behøver at annotere alt. Det udleder fra startværdier, return statements og brug.
ts
x = ;
s = ;
arr = [, ];
obj = { : , : };
Type inference er TypeScript, der automatisk finder ud af typer fra kontekst, så du ikke behøver at annotere alt. Det udleder fra startværdier, return statements og brug.
x = ;
s = ;
arr = [, ];
obj = { : , : };
function double(n: number) { return n * 2; } // return inferred as number
[1, 2, 3].map(n => n * 2); // `n` inferred as number from the array — no annotation needed
Denne kontekstuelle typning er grunden til, at callbacks sjældent har brug for parameterannotationer — TypeScript ved, at map på en number[] passerer et number.
let a = "hello"; // widened to string (let can be reassigned)
const b = "hello"; // narrowed to the literal type "hello"
const udleder den bogstavelige type, fordi den aldrig kan ændres; let udvides til den generelle type. Dette betyder noget for unions:
const dir = "up"; // type "up"
let dir2 = "up"; // type string
string ikke bogstaveligt).const xs = [] udleder any[] — annoteringerer som number[].Inference holder TypeScript-kode næsten lige så præcis som JavaScript og forbliver fuldt typet.
At forstå hvornår det aktiveres (og hvornår det udvides) lader dig annotere kun der, hvor det faktisk hjælper.