tsconfig.json的目的是什么?

时间:2016-05-24 12:26:05

标签: json typescript angular tsconfig

我正在阅读angular2引用并找到private void extractAll(URI fromZip, Path toDirectory) throws IOException{ FileSystem zipFs = FileSystems.newFileSystem(fromZip, Collections.emptyMap()); for(Path root : zipFs.getRootDirectories()) { Files.walkFileTree(root, new SimpleFileVisitor<Path>() { @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { // You can do anything you want with the path here Files.copy(file, toDirectory); return FileVisitResult.CONTINUE; } @Override public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException { // In a full implementation, you'd need to create each // sub-directory of the destination directory before // copying files into it return super.preVisitDirectory(dir, attrs); } }); } } 。 我想知道以下参数是什么意思?

tsconfig.json

6 个答案:

答案 0 :(得分:23)

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

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

以下是一些提示:

  • 目标:用于编译输出的语言
  • 模块:编译输出中使用的模块管理器。 system用于SystemJS,commonjs用于CommonJS。
  • moduleResolution :用于解析模块声明文件(.d.ts文件)的策略。使用node方法,它们从node_modules文件夹加载,如模块(require('module-name')
  • sourceMap :生成或不生成源地图文件,直接在浏览器中调试应用程序TypeScript文件,
  • emitDecoratorMetadata :在源代码中为装饰声明发出或不发布设计类型元数据
  • experimentalDecorators :启用或不启用ES7装饰器的实验支持,
  • 删除评论:删除评论
  • noImplicitAny :允许或不允许使用不带类型的变量/参数(隐式)

答案 1 :(得分:5)

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

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

“target”:“es5” =&gt;将es6编译为es5,使其成为兼容的浏览器。

“module”:“system” =&gt;指定模块代码生成(commonjs','amd','system','umd','es6'等)

“moduleResolution”:“node” =&gt;确定如何解决模块

“sourceMap”:true =&gt;生成相应的“.map”文件,以便可以在生产代码中使用它进行调试。

“removeComments”:false =&gt;删除除以/ *!

开头的复制右侧标题注释之外的所有注释

“noImplicitAny”:false =&gt;使用隐含的“any”类型提高表达式和声明的错误。

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

答案 2 :(得分:2)

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

  

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

     

浏览器无法直接执行TypeScript。打字稿必须是   使用tsc编译器将其“转换”为JavaScript,这需要   一些配置。

通常,您将一个名为tsconfig.json的TypeScript配置文件添加到项目中,以指导编译器生成JavaScript文件。

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

上面已涵盖了大部分要点。我想强调一些错过的地方。

tsconfig.json将告诉您构建代码在哪里以及目标版本。

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

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

而且我们的浏览器不了解打字稿,因此请提及哪种js类型的代码将转换为我们的代码,而浏览器会理解。

换句话说,我们用打字稿编写代码,但是将代码带到es5,我们使用下面的字段进行操作。

  "target": "es2015",

答案 5 :(得分:0)

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