TypeScript项目配置

2023-09-14 13:28:29

前言

        我们需要建立tsconfig.json

作用

  1.         用于标识 TypeScript 项目的根路径;
  2.         用于配置 TypeScript 编译器;
  3.         用于指定编译的文件。

重要字段

files - 设置要编译的文件的名称;
include - 设置需要进行编译的文件,支持路径模式匹配;
exclude - 设置无需进行编译的文件,支持路径模式匹配;
compilerOptions - 设置与编译流程相关的选项。
{
  "compilerOptions": {
    "target": "ESNext",
    "module": "ESNext",
    "jsx": "preserve",
    "jsxFactory": "VueTsxSupport",
    "strict": true,
    "declaration": true,
    "moduleResolution": "Node",
    "outDir": "./dist",
    "sourceMap": true,
    "baseUrl": "./",
    "allowSyntheticDefaultImports": true,
    "experimentalDecorators": true,
    "esModuleInterop": true,
    "importHelpers": true,
    "types": ["vue", "@triascloud/i18n"],
    "paths": {
      "resize-observer-polyfill": ["lib/resize-observer-polyfill.d.ts"]
    },
    "skipLibCheck": true
  },
  "include": ["lib/**/*", "test/**/*", "node_modules/vue-tsx-support/enable-check.d.ts"]
}

 

 compilerOptions 选项对照

{
  "compilerOptions": {

    /* 基本选项 */
    "target": "es5",                       // 指定 ECMAScript 目标版本: 'ES3' (default), 'ES5', 'ES6'/'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'
    "module": "commonjs",                  // 指定使用模块: 'commonjs', 'amd', 'system', 'umd' or 'es2015'
    "lib": [],                             // 指定要包含在编译中的库文件
    "allowJs": true,                       // 允许编译 javascript 文件
    "checkJs": true,                       // 报告 javascript 文件中的错误
    "jsx": "preserve",                     // 指定 jsx 代码的生成: 'preserve', 'react-native', or 'react'
    "declaration": true,                   // 生成相应的 '.d.ts' 文件
    "sourceMap": true,                     // 生成相应的 '.map' 文件
    "outFile": "./",                       // 将输出文件合并为一个文件
    "outDir": "./",                        // 指定输出目录
    "rootDir": "./",                       // 用来控制输出目录结构 --outDir.
    "removeComments": true,                // 删除编译后的所有的注释
    "noEmit": true,                        // 不生成输出文件
    "importHelpers": true,                 // 从 tslib 导入辅助工具函数
    "isolatedModules": true,               // 将每个文件做为单独的模块 (与 'ts.transpileModule' 类似).

    /* 严格的类型检查选项 */
    "strict": true,                        // 启用所有严格类型检查选项
    "noImplicitAny": true,                 // 在表达式和声明上有隐含的 any类型时报错
    "strictNullChecks": true,              // 启用严格的 null 检查
    "noImplicitThis": true,                // 当 this 表达式值为 any 类型的时候,生成一个错误
    "alwaysStrict": true,                  // 以严格模式检查每个模块,并在每个文件里加入 'use strict'

    /* 额外的检查 */
    "noUnusedLocals": true,                // 有未使用的变量时,抛出错误
    "noUnusedParameters": true,            // 有未使用的参数时,抛出错误
    "noImplicitReturns": true,             // 并不是所有函数里的代码都有返回值时,抛出错误
    "noFallthroughCasesInSwitch": true,    // 报告 switch 语句的 fallthrough 错误。(即,不允许 switch 的 case 语句贯穿)

    /* 模块解析选项 */
    "moduleResolution": "node",            // 选择模块解析策略: 'node' (Node.js) or 'classic' (TypeScript pre-1.6)
    "baseUrl": "./",                       // 用于解析非相对模块名称的基目录
    "paths": {},                           // 模块名到基于 baseUrl 的路径映射的列表
    "rootDirs": [],                        // 根文件夹列表,其组合内容表示项目运行时的结构内容
    "typeRoots": [],                       // 包含类型声明的文件列表
    "types": [],                           // 需要包含的类型声明文件名列表
    "allowSyntheticDefaultImports": true,  // 允许从没有设置默认导出的模块中默认导入。

    /* Source Map Options */
    "sourceRoot": "./",                    // 指定调试器应该找到 TypeScript 文件而不是源文件的位置
    "mapRoot": "./",                       // 指定调试器应该找到映射文件而不是生成文件的位置
    "inlineSourceMap": true,               // 生成单个 soucemaps 文件,而不是将 sourcemaps 生成不同的文件
    "inlineSources": true,                 // 将代码与 sourcemaps 生成到一个文件中,要求同时设置了 --inlineSourceMap 或 --sourceMap 属性

    /* 其他选项 */
    "experimentalDecorators": true,        // 启用装饰器
    "emitDecoratorMetadata": true          // 为装饰器提供元数据的支持
  }
}

更多推荐

零基础Linux_6(开发工具_下)函数库链接+Makefile+实现进度条+Git

目录1.函数库(链接)1.1链接1.2动态库与静态库2.makefile2.1项目构建2.2Makefile的概念2.3Makefile的编写2.4.PHONY定义伪目标ACM时间3.实现进度条(缓冲区)3.1缓冲区的概念3.2实现一个简易"进度条"4.版本控制器Git4.1Git的概念和准备工作4.2git三板斧4.

AI写作宝-为什么要使用写作宝

写作一直是一项需要创造力和思考的任务,人工智能(AI)正逐渐成为我们写作过程中的一位新伙伴。AI写作宝等在线AI写作工具正日益普及,为我们提供了更多的写作选择和可能性。AI写作宝:什么是它们,以及它们能做什么?AI写作宝是一种基于人工智能技术的在线工具,旨在帮助用户生成各种类型的文字内容。它们可以根据用户输入的关键词、

【OS】操作系统课程笔记 第四章 中断和处理机调度

什么是调度?调度就是采用特定算法,安排多个作业或进程运行。4.1中断中断对于操作系统的五个作用:(可能考简答题)实现多道程序设计与并发的基础解决主机与外设的并行工作问题具备控制和管理计算机,提高可靠性实现多机联系实现分时、实时控制等4.1.1中断和指令周期中断响应的三个步骤:终止当前程序执行保存断点信息转到相应的中断处

黑马JVM总结(九)

(1)StringTable_调优1我们知道StringTable底层是一个哈希表,哈希表的性能是跟它的大小相关的,如果哈希表这个桶的个数比较多,元素相对分散,哈希碰撞的几率就会减少,查找的速度较快,反之桶的个数较少,碰撞的几率增高,导致我的链表较长,查找的效率受到影响调优呢主要是调整HashTable桶的个数:时间还

【演讲干货满满】共话数智转型之路:斯歌应邀出席2023德莱维数字技术行业峰会

前不久,2023德莱维数字技术行业峰会在苏州隆重启幕。峰会聚焦“数智转型,融合发展”主题,云集各路大咖,旨在从多元行业、技术维度探索企业数字化发展的革新之道。上海斯歌应邀出席峰会,并于现场进行了《为企业打造更敏捷强壮的“神经网络”》主题演讲,向来自各领域的资深技术专家、行业领袖们分享了BPM领域的前沿洞察与最佳实践,为

Moment.js 处理日期库

文章目录Moment.js是什么Moment.js使用:安装和引入Moment.js:在vue项目中使用Moment.js的基本用法:Moment.js的常用方法示例:总结Moment.js是什么Moment.js是一个轻量级的日期处理库,它提供了一套简单而强大的API,使得在JavaScript中处理日期和时间变得非

通过Power Platform自定义D365 CE 业务需求 - 9. 使用PowerApps自定义

PowerApps提供了许多自定义组件,因此您可以根据业务需求进行自定义。可以为Dynamics365PowerApps开发以下自定义组件:客户端脚本(JavaScript)服务器端代码(插件)服务器端代码(自定义工作流活动)编辑命令栏在Power应用程序中使用客户端JavaScriptMicrosoftDynamic

父域 Cookie实现sso单点登录

单点登录(SingleSignOn,SSO)是指在同一帐号平台下的多个应用系统中,用户只需登录一次,即可访问所有相互信任的应用系统。Cookie的作用域由domain属性和path属性共同决定。在Tomcat中,domain属性默认为当前域的域名/IP地址。path属性的有效值是以“/”开头的路径,在Tomcat中,p

性能测试 —— 性能测试常见的测试指标 !

一、什么是性能测试先看下百度百科对它的定义,性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。我们可以认为性能测试是:通过在测试环境下对系统或构件的性能进行探测,用以验证在生产环境下系统性能是否达到预估的性能需求,发现系统可能存在的性能瓶颈,进而改善优化并系统的性能,提高系

[JAVAee]Spring使用注解来存储与获取Bean对象

前置内容:[JAVAee]Spring项目的创建与基本使用_HY_PIGIE的博客-CSDN博客先前我们在项目中注册类到spring中,要在xml中一行一行的手动添加bean标签.如果对象数目一多起来,就会显得非常繁琐.本文章介绍了使用另一种方法,使用注解的方式快捷的完成Bean对象的存储与获取.配置spring.xm

基于PHP语言研发的抖音矩阵系统源代码开发部署技术文档分享

一、概述本技术文档旨在介绍抖音SEO矩阵系统源代码的开发部署流程,以便开发者能够高效地开发、测试和部署基于PHP语言的开源系统。通过本文档的指引,您将能够掌握抖音SEO矩阵系统的开发环境和部署方案,从而快速地构建出稳定、可靠的短视频SEO优化系统。二、开发环境搭建PHP环境安装:在系统上安装PHP解释器,推荐使用PHP

热文推荐