为什么 Typescript 编译器不将 .ts 更改为 .js?
Why does Typescript compiler not change .ts to .js?
在下图中左侧的文件夹中,您可以看到我的 /src 打字稿(蓝色)已编译到我的 /dist (紫色)Javascript 使用 tsc.
您可以看到在左侧的源文件中引用了一个.ts 模块文件,它没有编译成引用右侧的.js 模块文件。
为什么不呢?如果 tsc 不转换引用,Javascript 怎么可能 运行?
第二个问题:然后我尝试手动将编译参考从 .ts 更改为 .js 和 运行ning node dist/server.js 但我得到错误 找不到模块 tools/typescriptImport.js'。为什么node在正确引用的时候找不到模块(而且可以看到最右边是模块)?
您不应该在 import
命令中编写扩展名 .ts
。
对应文档:http://www.typescriptlang.org/Handbook#modules-going-external
首先,您必须从 import
中删除 .ts
扩展。 TypeScript 表示它将它视为静态字符串并且不会更改它。
其次,根据经验,我猜想使用 .d.ts
文件可能会解决您的 module not found
错误。我已经用这个小技巧解决了很多次。您可以使用 /// <reference path="tools/typeScriptImports.d.ts" />
引用它。想象一下 .d.ts
作为 TypeScript 的头文件。
最后,尝试创建相对于 server.js
文件的路径。所以:./tools/typeScriptImports
.
在下图中左侧的文件夹中,您可以看到我的 /src 打字稿(蓝色)已编译到我的 /dist (紫色)Javascript 使用 tsc.
您可以看到在左侧的源文件中引用了一个.ts 模块文件,它没有编译成引用右侧的.js 模块文件。
为什么不呢?如果 tsc 不转换引用,Javascript 怎么可能 运行?
第二个问题:然后我尝试手动将编译参考从 .ts 更改为 .js 和 运行ning node dist/server.js 但我得到错误 找不到模块 tools/typescriptImport.js'。为什么node在正确引用的时候找不到模块(而且可以看到最右边是模块)?
您不应该在 import
命令中编写扩展名 .ts
。
对应文档:http://www.typescriptlang.org/Handbook#modules-going-external
首先,您必须从 import
中删除 .ts
扩展。 TypeScript 表示它将它视为静态字符串并且不会更改它。
其次,根据经验,我猜想使用 .d.ts
文件可能会解决您的 module not found
错误。我已经用这个小技巧解决了很多次。您可以使用 /// <reference path="tools/typeScriptImports.d.ts" />
引用它。想象一下 .d.ts
作为 TypeScript 的头文件。
最后,尝试创建相对于 server.js
文件的路径。所以:./tools/typeScriptImports
.