练习 / ts

TypeScript 练习

TypeScript 的全部练习都来自可随时对照的主题。

76项练习 离线运行
ts 测验 新题 哪个条件类型会判断整个联合类型 T 是否可赋给 U? 组合条件类型、映射类型、索引访问、模板字面量与递归类型,同时分清编译期保证和运行时检查的边界。 高级 1分钟 · 来自 高级类型 ts 测验 新题 为什么 { [K in keyof M]: { type: K; payload: M[K] } }[keyof M] 能保留事件名与载荷的关系? 组合条件类型、映射类型、索引访问、模板字面量与递归类型,同时分清编译期保证和运行时检查的边界。 高级 1分钟 · 来自 高级类型 ts 预测输出 新题 这段程序会输出什么? 组合条件类型、映射类型、索引访问、模板字面量与递归类型,同时分清编译期保证和运行时检查的边界。 进阶 2分钟 · 来自 高级类型 ts 审查 AI 代码 新题 审查生成的事件路由器 组合条件类型、映射类型、索引访问、模板字面量与递归类型,同时分清编译期保证和运行时检查的边界。 高级 6分钟 · 来自 高级类型 ts 找出 bug 新题 找出深度只读类型里的 bug 组合条件类型、映射类型、索引访问、模板字面量与递归类型,同时分清编译期保证和运行时检查的边界。 高级 4分钟 · 来自 高级类型 ts 测验 新题 value as Account 在运行时会做什么? 理解 TypeScript 如何描述 JavaScript 值、推断并收窄类型,以及静态类型在运行时数据边界上的限度。 入门 1分钟 · 来自 基础类型 ts 预测输出 新题 这段程序会输出什么? 理解 TypeScript 如何描述 JavaScript 值、推断并收窄类型,以及静态类型在运行时数据边界上的限度。 入门 2分钟 · 来自 基础类型 ts 审查 AI 代码 新题 审查生成的管理员 ID 筛选器 理解 TypeScript 如何描述 JavaScript 值、推断并收窄类型,以及静态类型在运行时数据边界上的限度。 进阶 10分钟 · 来自 基础类型 ts 找出 bug 新题 找出 firstLabel 里的 bug 理解 TypeScript 如何描述 JavaScript 值、推断并收窄类型,以及静态类型在运行时数据边界上的限度。 入门 4分钟 · 来自 基础类型 ts 测验 新题 对于不可信的 JSON 结果,为什么 unknown 比 any 更安全? 理解 TypeScript 如何描述 JavaScript 值、推断并收窄类型,以及静态类型在运行时数据边界上的限度。 入门 1分钟 · 来自 基础类型 ts 测验 新题 对于在 number 上正确构造的 UserId 品牌,哪项赋值不需要另一个断言? 用品牌类型区分结构相同但语义不同的值,并把运行时验证、类型断言与信任边界连接成可审核的契约。 进阶 1分钟 · 来自 品牌类型 ts 测验 新题 为什么 addUsd(a, b) 应在 a + b 后调用 UsdCents 构造函数? 用品牌类型区分结构相同但语义不同的值,并把运行时验证、类型断言与信任边界连接成可审核的契约。 高级 1分钟 · 来自 品牌类型 ts 预测输出 新题 这段程序会输出什么? 用品牌类型区分结构相同但语义不同的值,并把运行时验证、类型断言与信任边界连接成可审核的契约。 进阶 2分钟 · 来自 品牌类型 ts 审查 AI 代码 新题 审查生成的转账边界 用品牌类型区分结构相同但语义不同的值,并把运行时验证、类型断言与信任边界连接成可审核的契约。 高级 6分钟 · 来自 品牌类型 ts 找出 bug 新题 找出 UserId 谓词里的 bug 用品牌类型区分结构相同但语义不同的值,并把运行时验证、类型断言与信任边界连接成可审核的契约。 高级 4分钟 · 来自 品牌类型 ts 测验 新题 声明文件中的 declare function loadConfig(): Config 有什么作用? 声明文件用静态类型描述现有 JavaScript API;理解模块边界、解析规则、声明生成与类型测试,避免让精确类型掩盖错误实现。 入门 1分钟 · 来自 声明文件 ts 测验 新题 一个包同时导出 "." 与 "./reports",它的声明必须覆盖什么? 声明文件用静态类型描述现有 JavaScript API;理解模块边界、解析规则、声明生成与类型测试,避免让精确类型掩盖错误实现。 进阶 1分钟 · 来自 声明文件 ts 预测输出 新题 TypeScript 擦除仅类型声明后,这段程序会输出什么? 声明文件用静态类型描述现有 JavaScript API;理解模块边界、解析规则、声明生成与类型测试,避免让精确类型掩盖错误实现。 入门 2分钟 · 来自 声明文件 ts 审查 AI 代码 新题 审查生成的支付声明 声明文件用静态类型描述现有 JavaScript API;理解模块边界、解析规则、声明生成与类型测试,避免让精确类型掩盖错误实现。 高级 6分钟 · 来自 声明文件 ts 找出 bug 新题 找出 Session 声明里的 bug 声明文件用静态类型描述现有 JavaScript API;理解模块边界、解析规则、声明生成与类型测试,避免让精确类型掩盖错误实现。 进阶 4分钟 · 来自 声明文件 ts 测验 新题 哪个类型表达式会得到枚举 E 的源码成员名? 枚举把一组命名常量同时带入类型系统和运行时;理解其输出、反向映射、边界验证与替代方案。 进阶 2分钟 · 来自 枚举 ts 预测输出 新题 这段程序会输出什么? 枚举把一组命名常量同时带入类型系统和运行时;理解其输出、反向映射、边界验证与替代方案。 入门 2分钟 · 来自 枚举 ts 审查 AI 代码 新题 审查生成的会话辅助代码 枚举把一组命名常量同时带入类型系统和运行时;理解其输出、反向映射、边界验证与替代方案。 高级 10分钟 · 来自 枚举 ts 找出 bug 新题 找出 State 解析里的 bug 枚举把一组命名常量同时带入类型系统和运行时;理解其输出、反向映射、边界验证与替代方案。 进阶 4分钟 · 来自 枚举 ts 测验 新题 对于 enum Role { Admin = "ADMIN" },哪个赋值无需断言即可通过类型检查? 枚举把一组命名常量同时带入类型系统和运行时;理解其输出、反向映射、边界验证与替代方案。 入门 2分钟 · 来自 枚举 ts 测验 新题 在泛型函数中,T extends { id: string } 能保证什么? 用类型参数表达输入、输出和容器之间的关系,并在约束、推断与类型擦除之间守住真实的类型契约。 进阶 1分钟 · 来自 泛型 ts 预测输出 新题 这段程序会输出什么? 用类型参数表达输入、输出和容器之间的关系,并在约束、推断与类型擦除之间守住真实的类型契约。 入门 2分钟 · 来自 泛型 ts 测验 新题 <T>(value: T) => T 表达了哪项 (value: any) => any 没有表达的事实? 用类型参数表达输入、输出和容器之间的关系,并在约束、推断与类型擦除之间守住真实的类型契约。 入门 1分钟 · 来自 泛型 ts 审查 AI 代码 新题 审查生成的实体索引 用类型参数表达输入、输出和容器之间的关系,并在约束、推断与类型擦除之间守住真实的类型契约。 高级 6分钟 · 来自 泛型 ts 找出 bug 新题 找出泛型 JSON 解码器里的 bug 用类型参数表达输入、输出和容器之间的关系,并在约束、推断与类型擦除之间守住真实的类型契约。 进阶 4分钟 · 来自 泛型 ts 测验 新题 类型 "auto" | string 能施加什么约束? 用精确值建模封闭状态,理解推断拓宽、as const、satisfies、可辨识联合与运行时验证之间的边界。 进阶 2分钟 · 来自 字面量类型 ts 测验 新题 在 const request = { method: "GET" } 中,request.method 通常被推断成什么类型? 用精确值建模封闭状态,理解推断拓宽、as const、satisfies、可辨识联合与运行时验证之间的边界。 入门 2分钟 · 来自 字面量类型 ts 预测输出 新题 这段程序会输出什么? 用精确值建模封闭状态,理解推断拓宽、as const、satisfies、可辨识联合与运行时验证之间的边界。 入门 3分钟 · 来自 字面量类型 ts 审查 AI 代码 新题 审查生成的任务事件解析器 用精确值建模封闭状态,理解推断拓宽、as const、satisfies、可辨识联合与运行时验证之间的边界。 高级 12分钟 · 来自 字面量类型 ts 测验 新题 const cfg = { retry: 3 } satisfies { retry: 0 | 1 | 2 | 3 } 的主要效果是什么? 用精确值建模封闭状态,理解推断拓宽、as const、satisfies、可辨识联合与运行时验证之间的边界。 进阶 3分钟 · 来自 字面量类型 ts 找出 bug 新题 找出 Mode 解析里的 bug 用精确值建模封闭状态,理解推断拓宽、as const、satisfies、可辨识联合与运行时验证之间的边界。 进阶 5分钟 · 来自 字面量类型 ts 测验 新题 在 TypeScript 6 严格检查下,关于这个声明的哪项说法正确? 用 satisfies 校验表达式是否符合类型约束,同时保留可用的推断精度,并避开它不做运行时验证的陷阱。 进阶 1分钟 · 来自 satisfies 操作符 ts 测验 新题 为什么 JSON.parse(raw) satisfies Settings 不是运行时验证? 用 satisfies 校验表达式是否符合类型约束,同时保留可用的推断精度,并避开它不做运行时验证的陷阱。 进阶 1分钟 · 来自 satisfies 操作符 ts 预测输出 新题 这段程序会输出什么? 用 satisfies 校验表达式是否符合类型约束,同时保留可用的推断精度,并避开它不做运行时验证的陷阱。 入门 2分钟 · 来自 satisfies 操作符 ts 审查 AI 代码 新题 审查生成的任务注册表 用 satisfies 校验表达式是否符合类型约束,同时保留可用的推断精度,并避开它不做运行时验证的陷阱。 高级 6分钟 · 来自 satisfies 操作符 ts 找出 bug 新题 找出命令注册表里的 bug 用 satisfies 校验表达式是否符合类型约束,同时保留可用的推断精度,并避开它不做运行时验证的陷阱。 进阶 4分钟 · 来自 satisfies 操作符 ts 测验 新题 启用 strictFunctionTypes 后,函数属性形式的回调中哪项赋值是安全的? 严格模式会在 JavaScript 运行前暴露空值、回调、类字段、迭代器和未标注代码中的不安全假设。 进阶 1分钟 · 来自 严格模式 ts 预测输出 新题 这段严格模式下的 TypeScript 程序会输出什么? 严格模式会在 JavaScript 运行前暴露空值、回调、类字段、迭代器和未标注代码中的不安全假设。 入门 2分钟 · 来自 严格模式 ts 审查 AI 代码 新题 审查生成的任务运行器 严格模式会在 JavaScript 运行前暴露空值、回调、类字段、迭代器和未标注代码中的不安全假设。 高级 6分钟 · 来自 严格模式 ts 找出 bug 新题 找出 Client 设置里的 bug 严格模式会在 JavaScript 运行前暴露空值、回调、类字段、迭代器和未标注代码中的不安全假设。 进阶 4分钟 · 来自 严格模式 ts 测验 新题 TypeScript 6 中,哪个选项不会由 strict: true 启用? 严格模式会在 JavaScript 运行前暴露空值、回调、类字段、迭代器和未标注代码中的不安全假设。 进阶 1分钟 · 来自 严格模式 ts 测验 新题 哪种比较能提供有意义的类型覆盖率回归信号? 类型覆盖率量化代码中逃逸为 any 的标识符;这里说明指标边界、严格计数、可信数据验证与稳定的 CI 门槛。 进阶 1分钟 · 来自 类型覆盖率 ts 预测输出 新题 当 JSON.parse 返回 any 时,这段程序会输出什么? 类型覆盖率量化代码中逃逸为 any 的标识符;这里说明指标边界、严格计数、可信数据验证与稳定的 CI 门槛。 入门 2分钟 · 来自 类型覆盖率 ts 审查 AI 代码 新题 审查生成的类型覆盖运行器 类型覆盖率量化代码中逃逸为 any 的标识符;这里说明指标边界、严格计数、可信数据验证与稳定的 CI 门槛。 高级 6分钟 · 来自 类型覆盖率 ts 找出 bug 新题 找出资料格式化里的 bug 类型覆盖率量化代码中逃逸为 any 的标识符;这里说明指标边界、严格计数、可信数据验证与稳定的 CI 门槛。 进阶 4分钟 · 来自 类型覆盖率 ts 测验 新题 type-coverage 如何计算显式标为 unknown 的值? 类型覆盖率量化代码中逃逸为 any 的标识符;这里说明指标边界、严格计数、可信数据验证与稳定的 CI 门槛。 进阶 1分钟 · 来自 类型覆盖率 ts 测验 新题 在非空对象上检查 "id" in value 后,代码证明了什么? 用运行时证据安全地收窄联合类型与 unknown,并写出可信的自定义类型谓词和断言函数。 进阶 1分钟 · 来自 类型守卫 ts 测验 新题 如果 isSmallNumber(value): value is number 会对 -9 到 9 以外的数字返回 false,这个声明为什么不安全? 用运行时证据安全地收窄联合类型与 unknown,并写出可信的自定义类型谓词和断言函数。 高级 1分钟 · 来自 类型守卫 ts 预测输出 新题 这段程序会输出什么? 用运行时证据安全地收窄联合类型与 unknown,并写出可信的自定义类型谓词和断言函数。 入门 2分钟 · 来自 类型守卫 ts 审查 AI 代码 新题 审查生成的 Webhook 守卫 用运行时证据安全地收窄联合类型与 unknown,并写出可信的自定义类型谓词和断言函数。 高级 6分钟 · 来自 类型守卫 ts 找出 bug 新题 找出 Profile 守卫里的 bug 用运行时证据安全地收窄联合类型与 unknown,并写出可信的自定义类型谓词和断言函数。 进阶 4分钟 · 来自 类型守卫 ts 测验 新题 为什么把内联 map 回调抽成 const render = (item) => item.name 后,可能在 noImplicitAny 下产生错误? 理解 TypeScript 如何从初始化值、上下文和泛型实参推导类型,并在字面量拓宽、空集合与公开 API 边界上保持正确契约。 进阶 3分钟 · 来自 类型推断 ts 测验 新题 在 const config = { mode: "safe" } 中,config.mode 通常被推断成什么类型? 理解 TypeScript 如何从初始化值、上下文和泛型实参推导类型,并在字面量拓宽、空集合与公开 API 边界上保持正确契约。 入门 2分钟 · 来自 类型推断 ts 预测输出 新题 这段程序会输出什么? 理解 TypeScript 如何从初始化值、上下文和泛型实参推导类型,并在字面量拓宽、空集合与公开 API 边界上保持正确契约。 入门 3分钟 · 来自 类型推断 ts 审查 AI 代码 新题 审查生成的发票汇总 理解 TypeScript 如何从初始化值、上下文和泛型实参推导类型,并在字面量拓宽、空集合与公开 API 边界上保持正确契约。 高级 12分钟 · 来自 类型推断 ts 找出 bug 新题 找出事件处理器里的 bug 理解 TypeScript 如何从初始化值、上下文和泛型实参推导类型,并在字面量拓宽、空集合与公开 API 边界上保持正确契约。 进阶 5分钟 · 来自 类型推断 ts 测验 新题 变量声明为 string | number,当前已收窄为 string,为什么稍后赋值 42 仍可通过编译? TypeScript 如何根据控制流收窄联合类型与 unknown,并用穷尽检查、可信谓词和稳定的局部绑定防止类型错误。 进阶 3分钟 · 来自 类型收窄 ts 测验 新题 为什么应把 switch 默认分支的值传给 assertNever,而不是返回 "unknown"? TypeScript 如何根据控制流收窄联合类型与 unknown,并用穷尽检查、可信谓词和稳定的局部绑定防止类型错误。 进阶 3分钟 · 来自 类型收窄 ts 预测输出 新题 这段程序会输出什么? TypeScript 如何根据控制流收窄联合类型与 unknown,并用穷尽检查、可信谓词和稳定的局部绑定防止类型错误。 入门 3分钟 · 来自 类型收窄 ts 审查 AI 代码 新题 审查生成的任务更新解码器 TypeScript 如何根据控制流收窄联合类型与 unknown,并用穷尽检查、可信谓词和稳定的局部绑定防止类型错误。 高级 12分钟 · 来自 类型收窄 ts 找出 bug 新题 找出 Invoice 谓词里的 bug TypeScript 如何根据控制流收窄联合类型与 unknown,并用穷尽检查、可信谓词和稳定的局部绑定防止类型错误。 进阶 5分钟 · 来自 类型收窄 ts 测验 新题 声明 type Combined = A & B 会产生什么运行时效果? 用联合类型表达多种可能,用交叉类型叠加约束,并通过可辨识联合、收窄与 never 检查保持类型组合安全。 入门 3分钟 · 来自 联合类型与交叉类型 ts 预测输出 新题 这段程序会输出什么? 用联合类型表达多种可能,用交叉类型叠加约束,并通过可辨识联合、收窄与 never 检查保持类型组合安全。 入门 3分钟 · 来自 联合类型与交叉类型 ts 审查 AI 代码 新题 审查生成的 API 结果渲染器 用联合类型表达多种可能,用交叉类型叠加约束,并通过可辨识联合、收窄与 never 检查保持类型组合安全。 高级 12分钟 · 来自 联合类型与交叉类型 ts 找出 bug 新题 找出导入用户类型里的 bug 用联合类型表达多种可能,用交叉类型叠加约束,并通过可辨识联合、收窄与 never 检查保持类型组合安全。 进阶 5分钟 · 来自 联合类型与交叉类型 ts 测验 新题 在结构类型系统中,关于对象联合 A | B 的哪项说法正确? 用联合类型表达多种可能,用交叉类型叠加约束,并通过可辨识联合、收窄与 never 检查保持类型组合安全。 进阶 3分钟 · 来自 联合类型与交叉类型 ts 测验 新题 为什么应为使用 Partial 构造的补丁类型启用 exactOptionalPropertyTypes? 用 Partial、Pick、Omit、Record 与函数工具类型派生契约,并避开浅层转换、运行时擦除和过宽键集合。 进阶 4分钟 · 来自 工具类型 ts 测验 新题 函数把现有 Account 对象以 Omit<Account, "passwordHash"> 类型返回。哪项说法正确? 用 Partial、Pick、Omit、Record 与函数工具类型派生契约,并避开浅层转换、运行时擦除和过宽键集合。 进阶 3分钟 · 来自 工具类型 ts 预测输出 新题 这段程序会输出什么? 用 Partial、Pick、Omit、Record 与函数工具类型派生契约,并避开浅层转换、运行时擦除和过宽键集合。 入门 3分钟 · 来自 工具类型 ts 审查 AI 代码 新题 审查生成的账户更新边界 用 Partial、Pick、Omit、Record 与函数工具类型派生契约,并避开浅层转换、运行时擦除和过宽键集合。 高级 12分钟 · 来自 工具类型 ts 找出 bug 新题 找出公共账户类型里的 bug 用 Partial、Pick、Omit、Record 与函数工具类型派生契约,并避开浅层转换、运行时擦除和过宽键集合。 进阶 5分钟 · 来自 工具类型