J'ai travaillé sur mon projet TypeScript et j'ai voulu m'attaquer à l'importation relative. ../../../
problème d'enfer. J'ai découvert qu'en tsconfig.json
Je peux spécifier le baseUrl
y paths
afin que mon ../../../../interface
peut devenir simplement @interface
lorsque j'ajoute un tel extrait au fichier tsconfig.json
:
"baseUrl": ".",
"paths": {
"@interface" : ["src/interface"],
},
et cela a très bien fonctionné... pendant un certain temps. J'ai remplacé les longs chemins dans les déclarations d'importation par des versions plus courtes. VSCode a eu la gentillesse de comprendre la correspondance des chemins et le codage est devenu plus facile. Lorsque j'ai finalement voulu tester l'application, j'ai compilé le code avec tsc
commande. Lorsque j'ai voulu l'exécuter, j'ai obtenu l'erreur suivante :
Error: Cannot find module '@interface'
J'ai inspecté le code JavaScript de sortie et j'ai vu que le chemin dans l'importation n'a pas été échangé par le compilateur, comme je m'y attendais, mais qu'il a simplement été utilisé sous la même forme que dans le code JavaScript. .ts
fichier :
const _interface_1 = require("@interface");
J'ai trouvé un problème sur TS GitHub depuis août 2018 se posant exactement la même question. Jusqu'à présent, il n'y a pas eu de solution satisfaisante au problème.
Ma question est la suivante : quel est le cas d'utilisation de la cartographie des chemins en TypeScript ? comme décrit dans le manuel ? Quel est l'intérêt de les utiliser si, au final, ils rendent le code de production impossible à exécuter ?