{
    "compilerOptions": {
      /* Basic Options */
      "target": "ES2015",                       /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
      "module": "commonjs",                     /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
      "lib": ["dom", "esnext"],                          /* Specify library files to be included in the compilation. */
      "allowJs": false,                       /* 允许编译器编译JS，JSX文件 Allow javascript files to be compiled. */
      // "checkJs": true,                       /* 允许在JS文件中报错，通常与allowJS一起使用 Report errors in .js files. */
      "jsx": "react",                     /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
      "declaration": true,                      /* 生成声明文件，开启后会自动生成声明文件 Generates corresponding '.d.ts' file. */
      //"declarationDir": "lib",              /* 生成*.d.ts声明文件输出的目录 */
      // "declarationMap": true,                /* Generates a sourcemap for each corresponding '.d.ts' file. */  // 为声明文件生成sourceMap
      "sourceMap": true,                     /* Generates corresponding '.map' file. */ // 生成目标文件的sourceMap文件
      // "outFile": "./",                       /* Concatenate and emit output to single file. */
      // "outDir": "lib",                          /* Redirect output structure to the directory. */
      // "rootDir": "./",                       /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
      // "composite": true,                     /* Enable project compilation */
      // "removeComments": true,                /* Do not emit comments to output. */ // 删除注释
      // "importHelpers": true,                 /* Import emit helpers from 'tslib'. */ // 通过tslib引入helper函数，文件必须是模块
      // "downlevelIteration": true,            /* Provide full support for iterables in 'for-of', spread, and destructuring when targeting 'ES5' or 'ES3'. */
      // "isolatedModules": true,               /* Transpile each file as a separate module (similar to 'ts.transpileModule'). */
  
      /* Strict Type-Checking Options */
      "strict": true,                           /* Enable all strict type-checking options. */  // 开启所有严格的类型检查
      // "noImplicitAny": true,                 /* Raise error on expressions and declarations with an implied 'any' type. */
      // "strictNullChecks": true,              /* Enable strict null checks. */  // 不允许把null、undefined赋值给其他类型的变量
      "strictFunctionTypes": false,           /* Enable strict checking of function types. */ // 不允许函数参数双向协变
      // "strictPropertyInitialization": true,  /* Enable strict checking of property initialization in classes. */ // 类的实例属性必须初始化
      // "strictBindCallApply": true,         // 严格的bind/call/apply检查
      "suppressImplicitAnyIndexErrors": true,   /**允许进行任意类型的索引取值，例如 a[b]**/
      "noImplicitThis": false,                /* Raise error on 'this' expressions with an implied 'any' type. */ // 不允许this有隐式的any类型
      // "alwaysStrict": true,                  /* Parse in strict mode and emit "use strict" for each source file. */  // 在代码中注入'use strict'
  
      /* Additional Checks */
       "noUnusedLocals": true,                /* Report errors on unused locals. */ // 检查只声明、未使用的局部变量(只提示不报错)
       "noUnusedParameters": true,            /* Report errors on unused parameters. */  // 检查未使用的函数参数(只提示不报错)
      // "noImplicitReturns": true,             /* Report error when not all code paths in function return a value. */  //每个分支都会有返回值
      // "noFallthroughCasesInSwitch": true,    /* Report errors for fallthrough cases in switch statement. */  // 防止switch语句贯穿(即如果没有break语句后面不会执行)
  
      /* Module Resolution Options */
      // "moduleResolution": "node",            /* 模块解析策略，ts默认用node的解析策略，即相对的方式导入 Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */
      "skipLibCheck": true,
      "forceConsistentCasingInFileNames": true, // 禁止对同一个文件的不一致的引用
      "allowSyntheticDefaultImports": true,     /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */
      "esModuleInterop": true,                  /* 允许export=导出，由import from 导入 Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
      "experimentalDecorators": true,        /* Enables experimental support for ES7 decorators. */
      "noEmitOnError": true // 发生错误时是否生成输出文件
  
  //    "listEmittedFiles": true, // 打印输出文件
  //    "listFiles": true// 打印编译的文件(包括引用的声明文件)
    },
    // "exclude": [
    //   // "../../node_modules",
    //   //   "./packages/**/demo/*",
    //   //   "./packages/**/demo/**/*"
    //   ],
    "include": [
      // "./index.d.ts",
      // "./html.d.ts",
      // "./packages/",
      // "./packages/**/src/*",
    //   "./src",
      // "../../ucf-common/**/src/**/*",
      // "./packages/**/demo/*",
      // "./packages/**/demo/**/*"
    ]
  }
  