microsoft / microsoft/TypeScript
Type Selection Queries
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.3k
- Merge moyen
- 2 j 4 h
- PR mergées (30 j)
- 132
Description
This might be a bit of a crazy idea, but here goes: to enable loose coupling between components we sometimes write Pick<Type, 'a' | 'b' | 'c'>
It would be nice if we could create a type query to select properties with a similar syntax to GraphQL:
e.g:
prop: AType[{a, b, c: { d }]
This would be equivalent to
prop: Pick<AType, 'a' | 'b'> & {c: Pick<AType['c'], 'd'>}
How often would you do that in "the real world" ? definitely more often if you could
How often should you do that? unclear ?
Some real-world code:
const testFetch = jest.fn()
class TestOptions extends GraphQlClient.Options {
public fetch = testFetch
}
const response: Pick<Response, 'ok' | 'json'> = {
ok: true,
async json() {
return { data: { auth: { token: testToken } } }
}
}
testFetch.mockResolvedValue(response)
Pick<Response, 'ok' | 'json'> could be Response[{ok, json}]
edit: that's not a great example use case, cause you could just as well do Partial<Response>
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par étudier le comportement existant de TypeScript concernant Pick et les types d’accès indexé, puis comparez la syntaxe proposée pour la sélection imbriquée avec des requêtes de style GraphQL. Examinez les exemples de l’issue et déterminez si la fonctionnalité a un cas d’utilisation clair et une conception claire pour le système de types. Pour considérer le travail comme terminé, il faudrait disposer d’une syntaxe, d’une sémantique et d’un plan d’implémentation convenus, plutôt que d’une simple transformation d’exemple.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- À clarifier
- Accessibilité débutants
- 25/100