语言与环境
emitDecoratorMetadata
false
启用时会为装饰器生成设计类型元数据,方便依赖注入等反射机制。
experimentalDecorators
false
启用实验性的装饰器语法支持。
jsx
"preserve"
指定 JSX 代码的处理方式,可选 "preserve", "react", "react-native", "react-jsx", "react-jsxdev" 等。
jsxFactory
"React.createElement"
指定 JSX 的工厂函数名,比如用其它库替代 React。
jsxFragmentFactory
"React.Fragment"
指定 JSX Fragment 的工厂函数名。
jsxImportSource
undefined
指定用于 JSX 转换的导入源(用于自动导入 JSX 运行时,例如 @emotion/react)。
lib
["dom", "esnext"]
指定要包含的库文件(比如 es2015, dom 等),影响全局类型。
libReplacement
undefined
用于替代某些默认库的替换方案(一般不用修改)。
moduleDetection
"auto"
模块检测策略,自动检测文件是否为模块。
noLib
false
不包含默认的库文件,通常不建议开启。
reactNamespace
"React"
指定 React 命名空间(通常默认 React)。
target
"esnext"
编译输出的 JavaScript 版本目标,如 es5, es6, es2017 等。
useDefineForClassFields
false
是否使用 ES 标准的 define 来初始化类字段,影响类字段的初始化行为和兼容性。
jsx
react-jsx:编译为_jsx调用(自动引入 React,优化生产环境),基于 React 17+ 新 JSX 转换。react-jsxdev:编译为_jsxDEV调用,保留调试信息,适用于开发环境,提供更好的错误提示和 DevTools 支持。react:编译为React.createElement(),旧版 React JSX 转换方式,需要显示导入 React。preserve:保留.tsx文件中的 JSX 原样,输出.jsx文件(不转译)react-native:也保留 JSX,但输出.js文件,专用于 React Native 项目。
Target
target设置决定 TypeScript 编译输出的 JavaScript 语言版本。
常见取值
target 值
描述
适用平台或版本
ES3
最旧支持(已极少使用)
旧版 IE6~IE8(已废弃)
ES5
较旧支持,含 polyfill 机会大
IE11、老 Android 浏览器
ES6 / ES2015
增加类、模块、箭头函数等语法
现代浏览器普遍支持(推荐最低选项)
ES2016~ES2022
每年一版,逐步加入新特性(如 **, async)
Node.js 12+、现代浏览器
ESNext
使用当前 TypeScript 支持的最新语法
尽量避免用于库发布,版本依赖不稳定
✅ 示例:项目推荐设置
composite
false
开启增量编译项目支持,要求 declaration 和 outDir,用于构建大型项目和项目引用(Project References)。
disableReferencedProjectLoad
false
禁止自动加载引用的项目配置文件,通常用于提升大型项目构建性能。
incremental
false
启用增量编译,TypeScript 会保存 .tsbuildinfo 文件,下一次编译时复用先前状态加快编译速度。
tsBuildInfoFile
undefined
指定 .tsbuildinfo 文件的输出路径,默认为 outDir 目录下的 tsconfig.tsbuildinfo。
这有帮助吗?