这是我对 TypeScript 的初步体验。我采用了一个由两个文件组成的简单 JavaScript 应用程序,并将它们转换为 TypeScript。
一个文件accounts.ts
包含主要代码,另一个fiat.ts
是导出模块的支持文件 Fiat
与一些导出成员。经过一些编辑后,我没有再收到来自 TypeScript 编译器的错误消息。
我使用 tsconfig.json
控制编译的文件:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"outFile": "main.js",
"target": "ES5",
"sourceMap": true
},
"files": [
"accounts.ts",
"fiat.ts"
]
}
它应该创建一个 main.js
包含代码的文件。但这在编译成功后只包含一行:
//# sourceMappingURL=main.js.map
没有包含其他代码。我无意中发现,如果我删除该行
import {Fiat} from './fiat';
在accounts.ts
文件然后编译器包含 accounts.ts
的代码进入main.js
但不是 fiat.ts
的代码此外,TypeScript 编译器会为每个对 Fiat
的引用显示错误消息在accounts.ts
.
我不知道如何从两个 TypeScript 文件创建一个 JavaScript 文件。任何帮助将不胜感激!
经过一些研究后我发现:Typescript 模块概念可以用两种不同的方式处理:内部模块和外部模块。我的困难来自于没有真正理解这一点。外部模块与动态模块加载器一起工作。你import
他们。只有内部模块可以集中到一个(或多个)Javascript 文件中,这些文件通过 script
与 HTML 一起加载。标签。要使用内部模块,您需要 /// <reference path="./name.ts" />
引用它们的文件中的行。据我所知,内部和外部模块之间的其他语法差异很小。
最佳答案
如果你想使用模块(外部模块)并将它们编译到单个文件中,你应该将 module
设置为目标 amd
或 system
(假设你的 tsconfig.json 中有 1.8 typescript )。
通过删除导入/导出,您不使用模块,因此 outFile
可以工作。
关于javascript - TypeScript 编译器在 WebStorm 中创建空的 JavaScript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36777121/