标签:类型安全

共 36 篇文章

C++ std::variant的visitor模式与模式匹配实现

C++ std::variant的visitor模式与模式匹配实现 std::variant是C++17引入的一种安全、可辨识的联合体,用于在固定类型集合中存储其中一个值。与传统的

# C++17 # std::variant # visitor模式
2026-06-14 135 0

TypeScript泛型函数在条件类型中类型收窄失效的情况

TypeScript泛型函数在条件类型中类型收窄失效的情况 当你使用 TypeScript 的条件类型 T extends U ? X : Y 来根据泛型参数 T 的类型决定函数的

# TypeScript # 泛型函数 # 条件类型
2026-06-11 129 0

TypeScript any和unknown在类型收窄中的实际差异陷阱

TypeScript any和unknown在类型收窄中的实际差异陷阱 在TypeScript中,any和unknown都代表顶层类型,可以接受任何值。但它们在类型安全和类型收窄方

# TypeScript # any # unknown
2026-06-09 149 0

Kotlin sealed interface配合when表达式实现穷举式匹配

Kotlin sealed interface配合when表达式实现穷举式匹配 使用 sealed interface 与 when 表达式配合,可以在编译期强制处理所有可能的情况

# Kotlin # 密封接口 # when表达式
2026-06-04 155 0

Go语言的interface{}与类型断言

Go语言的interface{}与类型断言 理解 interface{}(空接口)和类型断言是掌握 Go 语言灵活性的关键。interface{} 可以接收任意类型的值,但它也因此

# Go语言 # interface{} # 类型断言
2026-05-31 145 0

C++ std::optional 的空状态表示为什么比 std::pair 更语义化

C++ std::optional 的空状态表示为什么比 std::pair 更语义化 在 C++ 中,表示一个函数可能返回“有效值”或“空值”是常见需求。传统做法使用 std::

# C++17 # std::optional # 语义化
2026-05-28 147 0

C++ std::variant 为什么比传统 union 更类型安全

C++ std::variant 为什么比传统 union 更类型安全 问题源头:传统 union 的“裸”内存共享 传统 C 风格的 union 让你在同一个内存位置存储不同类型

# std::variant # 类型安全
2026-05-28 170 0

TypeScript类型系统中的any、unknown与never的适用场景

TypeScript类型系统中的any、unknown与never的适用场景 在TypeScript中,any、unknown和never是三个特殊且强大的基础类型。理解它们的区别

# TypeScript # any类型 # unknown类型
2026-05-18 201 0

TypeScript逆变与协变在函数参数类型中的体现

TypeScript逆变与协变在函数参数类型中的体现 TypeScript的类型系统提供了协变(covariance)和逆变(contravariance)两种类型关系,理解这些概

# TypeScript # 协变 # 逆变
2026-05-10 174 0

C++ std::array和C数组的区别:为什么推荐用std::array

C++ std::array和C数组的区别:为什么推荐用std::array C 数组是 C 和 C++ 中的基础数据结构,但 C++ 标准库提供了 std::array,一个更现

# C++ # std::array # C数组
2026-05-10 195 0

TypeScript模板字面量类型与联合类型的组合使用

TypeScript模板字面量类型与联合类型的组合使用 TypeScript的模板字面量类型和联合类型是两种强大的类型工具。当它们组合使用时,可以创建出高度动态和类型安全的字符串类

# TypeScript # 模板字面量类型 # 联合类型
2026-05-09 183 0

TypeScript泛型约束结合keyof实现类型安全的数据访问层

TypeScript泛型约束结合keyof实现类型安全的数据访问层 在开发后端或前端的数据请求逻辑时,直接拼接字符串来访问对象属性非常普遍,但这会导致类型系统的失效。例如,从 AP

# 泛型 # 泛型约束 # 类型安全
2026-05-05 165 0

Go语言atomic.Value在并发场景下的类型安全存储

Go语言atomic.Value在并发场景下的类型安全存储 在并发编程中,频繁使用互斥锁(sync.Mutex)会导致读写性能瓶颈,特别是在读多写少的场景下。Go 标准库中的 at

# Go语言 # 并发编程 # 类型安全
2026-04-25 165 0

C++ std::variant的std::visit访问者模式实现

C++ std::variant的std::visit访问者模式实现 std::variant是C++17引入的类型安全联合类型替代方案,它允许在同一个对象中存储不同类型的数据。访

# C++17 # std::variant # 访问者模式
2026-04-23 172 0

TypeScript类型收窄在if语句中的控制流分析

TypeScript类型收窄在if语句中的控制流分析 了解 TypeScript 类型收窄是编写类型安全代码的关键技能。类型收窄使 TypeScript 能够在代码执行过程中不断缩

# TypeScript # 类型收窄 # 控制流分析
2026-04-23 187 0

TypeScript类型断言与类型守卫在类型安全上的权衡

TypeScript 编译为 JavaScript 后,所有的类型信息都会被擦除。在运行时,变量仅仅是值,不再携带接口或类型的定义。因此,当处理来自 API 的 any 数据、DO

# TypeScript # 类型断言 # 类型守卫
2026-04-21 184 0

C++ std::format格式化字符串替代printf的类型安全优势

C++ std::format格式化字符串替代printf的类型安全优势 C++20 引入的 std::format 库旨在彻底解决 C 风格 printf 函数家族在类型安全上的

# C++ # C++20 # std::format
2026-04-21 175 0

TypeScript类型断言在联合类型收窄中的局限性

TypeScript类型断言在联合类型收窄中的局限性 在处理 TypeScript 联合类型时,开发者经常需要将类型范围从宽泛的 A B 收窄为具体的 A 或 B,以便访问特定属性

# TypeScript # 类型断言 # 联合类型
2026-04-20 193 0

TypeScript联合类型在switch语句中的穷尽性检查

TypeScript联合类型在switch语句中的穷尽性检查 在开发中,我们经常需要根据一个变量的不同取值(即联合类型)执行不同的逻辑。使用 switch 语句时,如果忘记处理某种

# TypeScript # 联合类型 # 穷尽性检查
2026-04-20 164 0

TypeScript 泛型默认值与约束的优先级

TypeScript 泛型默认值与约束的优先级 TypeScript 中的泛型是构建可复用组件的核心工具,但在实际开发中,很多开发者对“默认值”与“约束”同时存在时的执行顺序存在误

# TS # 泛型 # 默认值
2026-04-18 191 0