En utilisant le tapuscrit, je trouve pourquoi deux fonctions différentes affectées à différentes variables locales résultent en des signatures différentes. Je pensais que l'un était juste plus explicite.Pourquoi ces deux types de fonctions sont-ils différents?
let a: (number)=>number =
function(x: number): number {return 42;};
let z = function(x:number): number { return 42; };
> .type a
let a: (number: any) => number
> .type z
let z: (x: number) => number
Je pensais que a
était juste une version plus explicite de l'écriture z
, mais en quelque sorte, il devient plus généreusement typé comme accepter any
.
En utilisant la version Tapuscrit 2.5.2
ah, donc vous l'avez nommé, ou il est supposé être un nom avec un type de tout. C'est plutôt stupide. Et, le nom n'a pas d'importance aux fins de typochecking? –
Le nom n'a pas d'importance –
FWIW: Cela doit être ainsi pour maintenir la compatibilité avec JavaScript. – Pace