# 写 TypeScript 时,很多人可能会犯的几个错误
# 没有使用严格模式
strict:true
严格模式可以消除语法里一些不合理,不严谨的地方,可以让TS往更合理、更安全、更严谨的方向去发展: 通过将一些TS的静默错误更改为抛出错误,消除了TS的一些静默错误,能更加有效保障代码运行的安全;提高编译器效率,增加运行速度;禁止一些可能在ECMAScript未来版本中定义的语法。
# 使用 || 确定默认值
TIP
使用最新的??运算符或者最好是在参数级别定义返回值。
function a(text: string, data: Date = new Date) {
return {
text,
date,
}
}
1
2
3
4
5
6
2
3
4
5
6
- 这
??运算符去年才被引入,如果在长函数的中间使用值,可能很难将它们定义为参数默认值。 ??与||不同,它只返回 null 或 undefined,而不是所有 false 值。- 0 ?? 5--->0,而0 || 5--->5
# 使用any作为类型
在所有我们不确定类型的情况下,我们都应该使用unknown。
- 为什么要这么做呢?
- any 很简单,因为它从根本上禁用了所有类型检查。通常,即使在官方类型中也使用 any(例如,上面示例中的 response.json() 被 TypeScript 团队键入为
Promise<any>)。
- any 很简单,因为它从根本上禁用了所有类型检查。通常,即使在官方类型中也使用 any(例如,上面示例中的 response.json() 被 TypeScript 团队键入为
- 为什么不能用any?
- 它从根本上禁用所有类型检查。通过 any 进入的所有值都将完全放弃任何类型检查。这可能会变得非常难以捕捉错误,因为只有当我们对类型结构的假设符合运行时代码时,代码才会失败。