6、TypeScript 类型系统深度解析:最佳实践与常见误区

TypeScript 类型系统深度解析:最佳实践与常见误区

1. 类型与值空间的区分

在 TypeScript 中,类型和值的上下文可能会让人混淆。例如,当你尝试创建名为 Person 的变量和两个名为 string 的变量时,实际上是在值上下文中解释这些名称。正确的做法是将类型和值分开,示例代码如下:

function email(
  {to, subject, body}: {to: Person, subject: string, body: string}
) {
  // ...
}

虽然这种写法更冗长,但在实际应用中,你可能会为参数使用命名类型,或者从上下文中推断出类型。

以下是一些需要记住的要点:
- 阅读 TypeScript 表达式时,要清楚自己是在类型空间还是值空间。可以使用 TypeScript playground 来培养这种直觉。
- 每个值都有静态类型,但只有在类型空间中才能访问。像 type interface 这样的类型空间构造在编译时会被擦除,在值空间中无法访问。
- 有些构造,如 class enum ,会同时引入类型和值。
- typeof this 等许多运算符和关键字在类型空间和值空间中有不同的含义。

2. 优先使用类型注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值