文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Typescripttsconfig.json的配置详情

2023-02-16 12:03

关注

背景

当我们在做 typescript 相关的项目时,总是不可避免的要配置 ts,但是每个配置项到底代表什么意思,以及我们可能需要哪些配置项呢?每次去查官网、查相关资料,感觉都比较费时费力。所以直接就把所有配置都整理出来,当作一个“字典”来用,这样就轻松了许多,不知道对大家有帮助吗?

配置详情

{
  "compilerOptions": {
    
    "target": "es5" ,
    "module": "commonjs" ,
    "lib": ["es6", "dom"] ,
    "allowJs": true,                       
    "checkJs": true,                       
    "jsx": "preserve",                     
    "declaration": true,                   
    "declarationMap": true,                
    "sourceMap": true,                     
    "outFile": "./dist/main.js",                       
    "outDir": "./dist",                        
    "rootDir": "./",                       
    "composite": true,                     
    "removeComments": true,                
    "noEmit": true,                        
    "importHelpers": true,                 
    "downlevelIteration": true,            
    "isolatedModules": true,               
    
    "strict": true ,
    "noImplicitAny": true,                 
    "strictNullChecks": true,              
    "strictFunctionTypes": true,           
    "strictBindCallApply": true,           
    "strictPropertyInitialization": true,  
   "noImplicitThis": true,                
    "alwaysStrict": true,                  
    
    "noUnusedLocals": true,                
    "noUnusedParameters": true,            
    "noImplicitReturns": true,             
    "noFallthroughCasesInSwitch": true,    
    
    "moduleResolution": "node",            
    "baseUrl": "./",                       
    "paths": {},                           
    "rootDirs": [],                        
    "typeRoots": [],                       
    "types": [],                           
    "allowSyntheticDefaultImports": true,  
    "esModuleInterop": true ,
    "preserveSymlinks": true,              
    
    "sourceRoot": "",                      
    "mapRoot": "",                         
    "inlineSourceMap": true,               
    "inlineSources": true,                 
    
    "experimentalDecorators": true 
    "emitDecoratorMetadata": true,         
  }
  "files": [], // files可以配置一个数组列表,里面包含指定文件的相对或绝对路径,编译器在编译的时候只会编译包含在files中列出的文件,如果不指定,则取决于有没有设置include选项,如果没有include选项,则默认会编译根目录以及所有子目录中的文件。这里列出的路径必须是指定文件,而不是某个文件夹,而且不能使用* ? **/ 等通配符
  "include": [],  // include也可以指定要编译的路径列表,但是和files的区别在于,这里的路径可以是文件夹,也可以是文件,可以使用相对和绝对路径,而且可以使用通配符,比如"./src"即表示要编译src文件夹下的所有文件以及子文件夹的文件
  "exclude": [],  // exclude表示要排除的、不编译的文件,它也可以指定一个列表,规则和include一样,可以是文件或文件夹,可以是相对路径或绝对路径,可以使用通配符
  "extends": "",   // extends可以通过指定一个其他的tsconfig.json文件路径,来继承这个配置文件里的配置,继承来的文件的配置会覆盖当前文件定义的配置。TS在3.2版本开始,支持继承一个来自Node.js包的tsconfig.json配置文件
  "compileOnSave": true,  // compileOnSave的值是true或false,如果设为true,在我们编辑了项目中的文件保存的时候,编辑器会根据tsconfig.json中的配置重新生成文件,不过这个要编辑器支持
  "references": [],  // 一个对象数组,指定要引用的项目
}

include/exclude/files 三者的关系

首先我们明确一点,exclude 是有默认值的,如果我们没有设置 exclude ,那其默认值为 node_modules 、bower_componentsjspm_packages 和编译选项 outDir 指定的路径。

还有一点,files 的优先级是最高的,比如我们在 files 中指定了一些文件,但是又在 exclude 中把它们排除了,这是无效的,因为 files 的优先级更高,这些文件依然会被编译,但是如果 include 中包含,那么依然会被排除,由此可见这三者的优先级如下:

files > exclude > include

如果 files 和 include 都未设置,那么除了 exclude 排除的文件,编译器会默认包含路径下的所有 TS 文件。

typeRoots & types

typeRoots: 默认所有可见的 "@types" 包会在编译过程中被包含进来,node_modules/@types 文件夹下以及它们子文件夹下的所有包都是可见的,但是如果指定了typeRoots,只有typeRoots下面的包才会被包含进来

types: 如果指定了types,只有被列出来的包才会被包含进来,比如:

{
  "compilerOptions": {
       "types" : ["node", "lodash", "express"]
  }
}

以上就是Typescript tsconfig.json的配置详情的详细内容,更多关于Typescript tsconfig.json配置的资料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯