microsoft / microsoft/TypeScript
Compiler API: Expose More from typescript.d.ts
Personne n'a encore pris cette issue.
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
TypeScript Version: 2.9.0-dev.20180426
While Traversing the TypeScript AST of a source file, there have been a number of helpful things I've found by extending ts.* from typescript.d.ts and I would like it if these could be exposed (or not marked /* @internal */).
Search Terms:
typescript.d.ts
Node.locals
Symbol.parent
getContainingFunction
isAssignmentTarget
Code
declare namespace ts {
interface Node {
/* @internal */ readonly locals?: SymbolTable; // Locals associated with node (initialized by binding)
}
interface Symbol {
/* @internal */ readonly parent?: Symbol; // Parent symbol
}
function getContainingFunction(node: Node): SignatureDeclaration | undefined;
function isAssignmentTarget(node: Node): boolean;
}
Note:
- Added
readonlyforNode#locals&Symbol#parent - For
Symbol#parent, the goal is: given the symbol for a method (e.g.,methodSymbolforNumber#toString) find where that method is defined (e.g.,Number)... maybeprogram.getTypeChecker().getSymbolAtLocation(methodSymbol.valueDeclaration.parent)is what is "supposed" to be used instead? - For
ts.getContainingFunction()it seems more appropriate to have a return type ofSignatureDeclaration | undefinedinstead ofSignatureDeclaration
Related Issues:
#15841
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 les déclarations publiques de typescript.d.ts et comparez les membres indiqués Node.locals, Symbol.parent, getContainingFunction et isAssignmentTarget avec leurs implémentations dans le compilateur. Résolvez les questions soulevées concernant l’API et les types de retour, puis vérifiez que les membres prévus sont exposés de manière cohérente aux consommateurs de Compiler API.
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é
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 30/100