【发布时间】:2016-08-15 02:22:05
【问题描述】:
这是我对 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 编译器在accounts.ts 中为每个对Fiat 的引用显示错误消息.
我不知道如何仅从两个 TypeScript 文件创建 JavaScript 文件。任何帮助将不胜感激!
我在研究后发现:Typescript 模块概念可以通过两种不同的方式处理:内部模块和外部模块。我的困难来自于没有真正理解这一点。外部模块与动态模块加载器一起工作。你import他们。只有内部模块可以集中到一个(或多个)Javascript 文件中,这些文件通过script 标签与 HTML 一起加载。要使用内部模块,您需要在引用它们的文件中使用/// <reference path="./name.ts" /> 行。据我所知,内部和外部模块之间的其他语法差异很小。
【问题讨论】:
-
我看到并试图理解它。那里的人使用文件观察器,我直接使用编译器。可能没有这么大的区别,但建议的编译器选项对我的问题没有任何帮助。好像不一样了。
标签: javascript typescript webstorm