48

我正在阅读 angular2 参考并找到了这个tsconfig.json。我想知道以下参数是什么意思?

{
    "compilerOptions": {
        "target": "es5",
        "module": "system",
        "moduleResolution": "node",
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true,
        "removeComments": false,
        "noImplicitAny": false
    },
    "exclude": [
        "node_modules"
    ]
}
4

6 回答 6

43

tsconfig.json文件对应于 TypeScript 编译器 (tsc) 的配置。

这些链接可以为您提供有关这些属性的详细信息:

这里有一些提示:

  • target : 用于编译输出的语言
  • module:编译输出中使用的模块管理器。system用于 SystemJS,commonjs用于 CommonJS。
  • moduleResolution:用于解析模块声明文件(.d.tsfiles)的策略。使用这种node方法,它们node_modules像模块(require('module-name'))一样从文件夹中加载
  • sourceMap:生成或不生成源映射文件以在浏览器中直接调试您的应用程序 TypeScript 文件,
  • emitDecoratorMetadata:为源中的装饰声明发出或不发出设计类型的元数据,
  • 实验性装饰器:启用或不启用对 ES7 装饰器的实验性支持,
  • removeComments : 是否删除评论
  • noImplicitAny:允许或不允许使用没有类型的变量/参数(隐式)
于 2016-05-24T12:28:19.283 回答
11

tsconfig.json表示保存它的目录是 TypeScript 项目的根目录。该tsconfig.json文件指定编译项目所需的根文件和编译器选项。

编译器应按照上述配置执行:

"target": "es5" => 将 es6 编译为 es5,使其与浏览器兼容。

"module": "system" => 指定模块代码生成(commonjs'、'amd'、'system'、'umd'、'es6' 等)

"moduleResolution": "node" => 确定模块如何被解析

"sourceMap": true => 生成相应的 '.map' 文件,以便在生产代码中用于调试。

"removeComments": false => 删除除以 /* 开头的版权标题注释之外的所有注释!

"noImplicitAny": false => 使用隐含的 'any' 类型的表达式和声明引发错误。

如果指定了“exclude”属性,编译器会在包含目录和子目录中包含所有 TypeScript(*.ts 或 *.tsx)文件,但排除的文件或文件夹除外。

于 2016-05-24T12:41:18.040 回答
8

已经有很多答案了,但我想再补充一点,说明为什么需要 tsconfig。根据角度文档

TypeScript 是 Angular 应用程序开发的主要语言。它是 JavaScript 的超集,在设计时支持类型安全和工具。

浏览器不能直接执行 TypeScript。Typescript 必须使用 tsc 编译器“转译”成 JavaScript,这需要一些配置。

通常,您会在项目中添加一个名为 tsconfig.json 的 TypeScript 配置文件,以在编译器生成 JavaScript 文件时对其进行指导。

有关更多信息https://angular.io/guide/typescript-configuration

于 2018-07-06T04:35:25.647 回答
1

tsconfig 文件将项目指示为 typescript 项目,它包含有关如何编译 typescript 文件的选项。有关详细信息,请查看网站https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

于 2016-05-24T12:28:46.213 回答
0

如您所知,浏览器只能接受 javascript 文件,但是当您使用 angular 时,您不会使用 javascript。相反,您使用打字稿文件..所以现在我们需要一种将这些打字稿文件更改为 js 文件的方法。它由tsconfig.json指定我们需要进行此更改的配置选项的文件完成。比如编译选项和根文件。

于 2021-07-03T15:14:08.017 回答
0

大部分要点都在上面。一些我想强调的错过了。

tsconfig.json 将告诉构建代码在哪里以及要定位的版本。

例如,当它投入生产时,它将引用 tsconfig.json 中的以下键并选择构建。

"outDir": "./dist/out-tsc", --> where to locate the build file. 

而且我们的浏览器不理解打字稿,所以请说明要转换哪种类型的js,我们的代码将被浏览器理解。

换句话说,我们在 typescript 中编写代码,但将该代码带到 es5,我们使用以下字段来执行此操作。

  "target": "es2015",
于 2020-05-22T21:10:54.740 回答