Je me rends compte que c'est quelque peu obscur, mais peut-être que quelqu'un d'autre a rencontré cela ou connaît bien le compilateur Typescript. Je traitement des fichiers Tapuscrit en utilisant l'API du compilateur de Tapuscrit, à partir d'exemples comme celui-ci: https://github.com/Microsoft/TypeScript/wiki/Using-the-Compiler-APIComment utilisez-vous Typechecker du compilateur Typescript pour obtenir le type déclaré (alias), plutôt que le type résolu?
Imaginez que j'ai une fonction déclarée comme ceci dactylographiée:
export type DateString = string;
export function parseDate(date: DateString): Date{
let parsedDate = Date.parse(date);
let retVal = new Date();
retVal.setTime(parsedDate);
return retVal;
}
Dans les exemples liés ci-dessus, vous pouvez voir des méthodes telles que cette définition pour extraire des informations sur les symboles:
function serializeSymbol(symbol: ts.Symbol): DocEntry {
return {
name: symbol.getName(),
type: checker.typeToString(checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration))
};
}
Lorsque vous exécutez checker.typeToString(checker.getTypeOfSymbolAtLocation(symbol, symbol.valueDeclaration)
sur le symbole date: DateString
, au lieu de retourner DateString
, elle retourne string
. En d'autres termes, vous n'obtenez pas l'alias de type déclaré, mais le type entièrement résolu. Dans mon cas, je voudrais savoir que le type du champ date
est DateString
. Existe-t-il un moyen facile de rechercher le type déclaré d'un paramètre plutôt que son type résolu?
Wow David! Quelle bonne réponse. Très appréciée. Et votre bibliothèque est superbe. Il est temps d'arracher ma solution maison pour faire tout ça. :) – Taytay