如果一个目录下存在一个tsconfig.json文件,那么意味着这个目录是TypeScript项目的根目录。 tsconfig.json文件中指定了用来编译这个项目的根文件和编译选项。 一个项目可以通过以下方式之一来编译:

  • 不带任何输入文件的情况下调用tsc,编译器会从当前目录开始去查找tsconfig.json文件,逐级向上搜索父目录。
  • 不带任何输入文件的情况下调用tsc,且使用命令行参数--project(或-p)指定一个包含tsconfig.json文件的目录。

  当命令行上指定了输入文件时,tsconfig.json文件会被忽略。

  示例

tsconfig.json示例文件:

  • 使用"files"属性
  1. {
  2. "compilerOptions": {
  3. "module": "commonjs",
  4. "noImplicitAny": true,
  5. "removeComments": true,
  6. "preserveConstEnums": true,
  7. "sourceMap": true
  8. },
  9. "files": [
  10. "core.ts",
  11. "sys.ts",
  12. "types.ts",
  13. "scanner.ts",
  14. "parser.ts",
  15. "utilities.ts",
  16. "binder.ts",
  17. "checker.ts",
  18. "emitter.ts",
  19. "program.ts",
  20. "commandLineParser.ts",
  21. "tsc.ts",
  22. "diagnosticInformationMap.generated.ts"
  23. ]
  24. }
  • 使用"include""exclude"属性
  1. {
  2. "compilerOptions": {
  3. "module": "system",
  4. "noImplicitAny": true,
  5. "removeComments": true,
  6. "preserveConstEnums": true,
  7. "outFile": "../../built/local/tsc.js",
  8. "sourceMap": true
  9. },
  10. "include": [
  11. "src/**/*"
  12. ],
  13. "exclude": [
  14. "node_modules",
  15. "**/*.spec.ts"
  16. ]
  17. }

  

  初始化tsconfig.json

  1. yarn tsc -init

初始化后文件结构如下:

  1. {
  2. "compilerOptions": {
  3. /* Basic Options */
  4. // "incremental": true, /* Enable incremental compilation */
  5. "target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
  6. "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
  7. // "lib": [], /* Specify library files to be included in the compilation. */
  8. // "allowJs": true, /* Allow javascript files to be compiled. */
  9. // "checkJs": true, /* Report errors in .js files. */
  10. // "jsx": "preserve", /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
  11. // "declaration": true, /* Generates corresponding '.d.ts' file. */
  12. // "declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
  13. // "sourceMap": true, /* Generates corresponding '.map' file. */
  14. // "outFile": "./", /* Concatenate and emit output to single file. */
  15. // "outDir": "./", /* Redirect output structure to the directory. */
  16. // "rootDir": "./", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
  17. // "composite": true, /* Enable project compilation */
  18. // "tsBuildInfoFile": "./", /* Specify file to store incremental compilation information */
  19. // "removeComments": true, /* Do not emit comments to output. */
  20. // "noEmit": true, /* Do not emit outputs. */
  21. // "importHelpers": true, /* Import emit helpers from 'tslib'. */
  22. // "downlevelIteration": true, /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
  23. // "isolatedModules": true, /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
  24.  
  25. /* Strict Type-Checking Options */
  26. "strict": true, /* Enable all strict type-checking options. */
  27. // "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
  28. // "strictNullChecks": true, /* Enable strict null checks. */
  29. // "strictFunctionTypes": true, /* Enable strict checking of function types. */
  30. // "strictBindCallApply": true, /* Enable strict 'bind', 'call', and 'apply' methods on functions. */
  31. // "strictPropertyInitialization": true, /* Enable strict checking of property initialization in classes. */
  32. // "noImplicitThis": true, /* Raise error on 'this' expressions with an implied 'any' type. */
  33. // "alwaysStrict": true, /* Parse in strict mode and emit "use strict" for each source file. */
  34.  
  35. /* Additional Checks */
  36. // "noUnusedLocals": true, /* Report errors on unused locals. */
  37. // "noUnusedParameters": true, /* Report errors on unused parameters. */
  38. // "noImplicitReturns": true, /* Report error when not all code paths in function return a value. */
  39. // "noFallthroughCasesInSwitch": true, /* Report errors for fallthrough cases in switch statement. */
  40.  
  41. /* Module Resolution Options */
  42. // "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
  43. // "baseUrl": "./", /* Base directory to resolve non-absolute module names. */
  44. // "paths": {}, /* A series of entries which re-map imports to lookup locations relative to the 'baseUrl'. */
  45. // "rootDirs": [], /* List of root folders whose combined content represents the structure of the project at runtime. */
  46. // "typeRoots": [], /* List of folders to include type definitions from. */
  47. // "types": [], /* Type declaration files to be included in compilation. */
  48. // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
  49. "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
  50. // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */
  51. // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */
  52.  
  53. /* Source Map Options */
  54. // "sourceRoot": "", /* Specify the location where debugger should locate TypeScript files instead of source locations. */
  55. // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */
  56. // "inlineSourceMap": true, /* Emit a single file with source maps instead of having a separate file. */
  57. // "inlineSources": true, /* Emit the source alongside the sourcemaps within a single file; requires '--inlineSourceMap' or '--sourceMap' to be set. */
  58.  
  59. /* Experimental Options */
  60. // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */
  61. // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */
  62.  
  63. /* Advanced Options */
  64. "forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
  65. }
  66. }

  我们主要讲解target、module、strict和esModuleInterop四个默认开启项

  • target:指TypeScript源代码编译后的JavaScript版本。
  • Module:当前代码的组织形式。
  • strict:指开启JavaScript的严格模式。
  • esModuleInterop:指允许从没有设置默认导出的模块中默认导入。这并不影响代码的显示,仅为了类型检查。

测试

TypeScript tsconfig.json(TypeScript配置)的更多相关文章

  1. TypeScript编译tsconfig.json配置

    配置预览 { "include": ["src/**/*"], "exclude": ["ndoe_modules", ...

  2. TypeScript 之 tsconfig.json

    https://m.runoob.com/manual/gitbook/TypeScript/_book/doc/handbook/tsconfig.json.html 如果一个目录下存在一个tsco ...

  3. TypeScript的配置文件 tsconfig.json

    //tsconfig.json指定了用来编译这个项目的根文件和编译选项 { "compilerOptions": { //compilerOptions:编译选项,可以被忽略,这时 ...

  4. tsconfig.json配置

    什么工具看什么官网-一般都会有说明的 https://www.tslang.cn/docs/handbook/tsconfig-json.html 概述 如果一个目录下存在一个tsconfig.jso ...

  5. 初识Typescript及vscode环境配置

    什么是typescript?为什么要用它? typescript简称ts,是js语法的一个超级,由微软团队维护的 js特点(不足) 弱类型:js中的数据变量没有确定的类型,可以存储对象,可以存储数字, ...

  6. TypeScript入门一:配置TS工作环境

    配置手动编译TS文件工作环境 配置webpack自动化打包编译工作环境(后面补充) 一.TypeScript入门学习引言 进入主题之前,首先说明这个系列的博客是我刚刚接触TypeScript的学习笔记 ...

  7. TypeScript TSConfig All In One

    TypeScript TSConfig All In One tsconfig.json https://www.typescriptlang.org/tsconfig https://www.typ ...

  8. 基于Typescript的Vue项目配置国际化

    基于Typescript的Vue项目配置国际化 简介 使用vue-i18n插件对基于Typescript的vue项目配置国际化,切换多种语言, 配合element-ui或者其他UI库 本文以配置中英文 ...

  9. ABP vue+asp.net core yarn serve报 Cannot find module 'typescript/package.json错误

    abp的前端在node install 安装完成了相关的依赖包,直接yarn serve运行相关服务的时候报"Cannot find module 'typescript/package.j ...

随机推荐

  1. asp.net log4net

    引用Log4net.dll Global.asax.cs的Application_Start过程中添加如下代码 log4net.Config.DOMConfigurator.Configure(); ...

  2. AtCoder Beginner Contest 133 E - Virus Tree 2(组合数学)

    题意 n个点的树k种颜色,距离不超过2的点对需颜色不同,求方案数 Code(copy) #include<iostream> #include<cstdio> #include ...

  3. fluent懒人篇之journal的用法【转载】

    转载地址:http://blog.sina.cn/dpool/blog/s/blog_63a80e870100oblp.html?type=-1 当你在用fluent计算大量类似算例,重复着相同操作的 ...

  4. 网络IPC:套接字接口概述

    网络IPC:套接字接口概述 套接字接口实现了通过网络连接的不同计算机之间的进程相互通信的机制. 套接字描述符(创建套接字) 套接字是通信端点的抽象,为创建套接字,调用socket函数 #include ...

  5. JS 数组对象的某一项抽离出来放在外面

    数组类型: shamDeviceData: [ { "projectKey":"5555", "productKey":"5555 ...

  6. iptables 配置 场景1

    这样配置完成后,没法完成本地回环,需要对lo网卡进行配置 本地报文无法发出,继续添加规则

  7. Vuex 的使用 State Mutation Getter Action

    import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); /*1.state在vuex中用于存储数据*/ var state={ cou ...

  8. python制作简单excel统计报表2之操作excel的模块openpyxl简单用法

    python制作简单excel统计报表2之操作excel的模块openpyxl简单用法 # coding=utf-8 from openpyxl import Workbook, load_workb ...

  9. Java8的时间日期API

    原先的时间 api  大部分已经过时了 Date构造器 需要传入年月日  但是对时间的加减操作比较麻烦 Calenda  加减比较方便 使用 LocalDate. LocalTime. LocalDa ...

  10. 泡泡一分钟:Visual Odometry Using a Homography Formulation with Decoupled Rotation and Translation Estimation Using Minimal Solutions

    张宁 Visual Odometry Using a Homography Formulation with Decoupled Rotation and Translation Estimation ...