模块 7 · 第 1 课(共 2)课程中的13/14~12 min
模块课程(1/2)
使用 tsconfig.json 配置
tsconfig.json 文件指定 TypeScript 项目的根目录以及构建该项目所需的编译器选项。
每当您在项目目录中运行 tsc 时,编译器都会搜索此文件以指导其编译行为。
tsconfig.json 文件的结构
典型的配置文件如下所示:
Code
{
"compilerOptions": {
"target": "es2022",
"module": "commonjs",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"outDir": "./dist"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*.spec.ts"]
}主要属性是:
compilerOptions:编译器的设置。include:指定要编译的文件或文件夹。exclude:指定编译期间要忽略的文件或文件夹。
主要编译器选项
以下是一些需要了解的最重要的设置:
target:指定编译器输出的 JavaScript 版本(例如es5、es6/es2015、es2020、esnext)。module:指定编译代码中使用的模块系统(例如,commonjs、esnext、node16)。strict:启用一系列严格的类型检查行为。强烈建议将其设置为true以获得最大的类型安全性。它启用以下选项:noImplicitAny:当未提供类型注释时,在具有隐含any类型的表达式和声明上引发错误。strictNullChecks:防止将null或undefined分配给未明确将它们包含在其联合中的类型。
自己尝试一下
练习 1:处理 strictNullChecks
锻炼#ts.m7.l1.e1
尝试:0加载中...
在 tsconfig.json 中的 strictNullChecks: true 选项下,我们不能将 null 或 undefined 分配给原始类型。声明一个名为 parseAge 的函数,该函数接受 string | 类型的输入如果输入不为 null 并且是有效整数,则返回 null 并返回一个数字,否则返回 0。显式处理 null 情况以通过严格编译。
正在加载编辑器...
显示提示
在函数开始时检查输入是否为空,并在处理字符串之前立即返回 0。
3 次尝试后可用的解决方案
练习 2:不使用隐式 Any 的严格键入
锻炼#ts.m7.l1.e2
尝试:0加载中...
在 noImplicitAny: true 下,任何无法推断其类型的参数都必须显式键入。创建一个名为 processItems 的函数,该函数接受数组项(数字数组)和一个回调函数,该回调函数接受单个数字作为参数且不返回任何内容。确保不要使用任何内容并明确键入所有内容。
正在加载编辑器...
显示提示
使用签名 function processItems(items: number[], callback: (item: number) => void): void 声明该函数。
3 次尝试后可用的解决方案