javascript - TypeScript 编译器在 WebStorm 中创建空的 JavaScript 文件

标签 javascript typescript webstorm

这是我对 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 设置为目标 amdsystem (假设你的 tsconfig.json 中有 1.8 typescript )。

通过删除导入/导出,您不使用模块,因此 outFile 可以工作。

关于javascript - TypeScript 编译器在 WebStorm 中创建空的 JavaScript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36777121/

相关文章:

typescript - 动态设置 HttpParams() 主体

typescript - 既然 2.0 已经发布,Ionic 1.0 是否会被弃用?

Pycharm错误: Cannot determine module type ("WEB_MODULE")

phpstorm - 如何在 PhpStorm 中打开最近关闭的文件?

phpstorm - 在 PyCharm 中,是否可以禁用隐藏样式标签?

javascript - 如何使用 React + React-Router-Component 手动导航到路由

javascript - 看起来很奇怪的 Javascript for 循环

javascript - ESLint 未检测到导入的 React 组件

javascript - 如何使用jquery选择器获取没有id的内部div

javascript - 指定变量类型传递函数作为 prop