Why does Typescript compiler not change .ts to .js?

徘徊边缘 提交于 2019-12-07 08:34:14

问题


In the image below on the left in the folders you can see my /src Typescript (blue) compiled into my /dist (purple) Javascript using tsc.

You can see in the source file on the left that references a .ts module file that it isn't compiled into referencing a .js module file on the right.

Why not? How could the Javascript possibly run if tsc doesn't convert references?

Second question: I then tried manually changing the compiled reference from .ts to .js and running node dist/server.js but I get the error cannot find module tools/typescriptImport.js'. Why does node fail to find the module when it is correctly referenced (and you can see on the far right that it is a module)?


回答1:


For starters, you have to remove the .ts extension from the import. TypeScript says that it treats it as a static string and won't change it.

Second, out of experience, I guess using a .d.ts file may solve your module not found error. I have solved many times by using this small hack. You can reference it using /// <reference path="tools/typeScriptImports.d.ts" />. Imagine .d.ts as the header file for TypeScript.

Lastly, try and make the path relative to the server.js file. So: ./tools/typeScriptImports.




回答2:


You are not supposed to write extension .ts in import commands.

Corresponding documentation: http://www.typescriptlang.org/Handbook#modules-going-external



来源:https://stackoverflow.com/questions/34783953/why-does-typescript-compiler-not-change-ts-to-js

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!