Quelle est la syntaxe pour Tapuscrit flèche fonctions avec les génériques?
Le tapuscrit manuel a actuellement rien sur la flèche fonctions. Fonctions normales
peut être générique tapé avec cette syntaxe:
exemple:
function identity<T>(arg: T): T {
return arg;
}
Quelle est la syntaxe pour la flèche fonctions?
Vous devez vous connecter pour publier un commentaire.
L'exemple complet expliquant la syntaxe référencé par Robin... ramené à la maison pour moi:
Fonctions génériques
Quelque chose comme le suivant fonctionne très bien:
Toutefois, l'utilisation d'une flèche de la fonction générique ne sera pas:
Solution de contournement: Utiliser s'étend sur le paramètre générique pour suggérer le compilateur
que c'est un générique, par exemple:
const foo
? c'est à diretype GenericFun<T, A=T> = (payload: A) => T;
puis faireconst foo: GenericFun
encore générique sans fournir unT
type?GenericFun<T, A=T>
définit un ensemble qui inclut d'autres typesGenericFun<number>
etGenericFun<string>
, entre autres. Permettant aux types génériques constituent un type d'annotation directement - par exemple, constconst foo: GenericFun
- cependant, ont tendance à l'érosion de la sûreté statique disposition contraire, en exigeant de la spécificité de l'e.gconst foo: GenericFun<string>
ouconst foo: GenericFun<number>
.tsx
fichier (copie dactylographiée + JSX). Dans un.ts
fichier, il fonctionne très bien, comme vous pouvez le voir sur la Tapuscrit aire de jeux.const foo = <T,>(x: T) => x;
afin de contourner le JSX ambiguïté.J'ai trouvé l'exemple ci-dessus source de confusion.
Je suis à l'aide de Réagir et de JSX donc je pense qu'il est compliqué le scénario.
J'ai obtenu des éclaircissements. https://basarat.gitbooks.io/typescript/content/docs/types/generics.html
Laquelle les états d'arrow génériques: solution de Contournement: Utiliser s'étend sur le paramètre générique de faire allusion au compilateur que c'est un générique, cela venait de la
un exemple simple qui m'ont aidé.
La spécification du langage, dit le p.64f
exemple:
Cela fonctionne pour moi
Si vous êtes dans un
.tsx
fichier, vous ne pouvez pas écrire<T>
, mais cela fonctionne:Par opposition à la
extends {}
hack, ce hack au moins préserve l'intention.