练习 / 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分钟 · 来自工具类型