J'essaie de comprendre le processus de la résolution du module en TypeScript.Phases de résolution et de génération de code TypeScript
Supposons que j'ai deux fichiers. A.ts
et B.ts
, et "A" importe "B".
Comment fonctionne la résolution du module? et quand ? (dans la phase du compilateur). Après l'analyse de chacun des fichiers, et la construction de deux AST. Quelle est la prochaine phase du compilateur?
Comment sait-il résoudre les variables (ou types) du fichier "B" dans le fichier "A"?
Je ai deux hypothèses:
1. il regarde la table de symboles du fichier "B", et faire la vérification de type.
2. fusionner les AST en un seul arbre? (de l'ensemble du programme)
Selon ces hypothèses, je suis également intéressant de savoir comment la génération de code affecté par cela.
1. Si la première hypothèse est correcte, la génération de code est plus compliquée. car vous devez générer le code JS en fonction de l'ordre des dépendances. (comment détecte-t-il les cycles d'importation? si A importe B et vice versa).
2. Si la deuxième hypothèse est correcte, il me semble que la génération de code sera plus facile à faire. mais je suppose qu'il faudra faire pour cela un "tri topologique" pour les modules, avant de générer le code.
Merci d'avance.
Merci pour votre commentaire! –