microsoft / microsoft/TypeScript
Declare type to be an import depending on a string literal argument: typeof import(name);
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
Hello,
It's seems to be difficult to do but there's now a lot of possibilities with the typescript compiler that I wouldn't have thought possible before, so I prefer to ask.
Is there a chance to have this kind of definition:
declare function require(name: string): typeof import(name) | undefined;
I mean declaring the return type as the type coming from the import of module "name". So we could have the type returned by require:
var module = require("my module");
I guess if it's feasible, it will also be possible to add more typing on this kind of javascript code
define("myModule, ["deps1", "deps2", "deps3"], (deps1, deps2, deps3) => {
// deps1, deps2, deps3 have the right type !!
});
like this
define("myModule, ["deps1", "deps2", "deps3"], (deps1: typeof import("deps1"), deps2: typeof import("deps2"), deps3: : typeof import("deps3")) => {
// deps1, deps2, deps3 have the right type !!
});
Thanks for your help,
--
Laurent
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 déterminer si le compilateur TypeScript peut faire dépendre typeof import(name) d’un littéral de chaîne et utiliser ce résultat pour les appels à require et define. Examinez les exemples de l’issue et déterminez les modifications nécessaires du langage et de la vérification des types ; le travail serait terminé lorsque les types de module demandés seraient inférés à partir d’arguments littéraux.
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