TypeScript中那些让人头疼的细节,如何高效解决?

2026-04-05 17:319阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1321个文字,预计阅读时间需要6分钟。

TypeScript中那些让人头疼的细节,如何高效解决?

记录一些在ts上浪费过时间的地方:

1. 错误理解Stackoverflow:Stackoverflow上几乎所有问题都有答案,但百度可能不太适用。

2.对as断言的误解:例如,`a as b`这种代码不会报错。

3.interface和type的不一致使用:两者在ts中的作用类似,但使用方式有区别。

记录一些自己在ts上费过时间的地方。

(先吐个槽:stackoverflow是真的啥都有,百度是真的没法用)

as断言的兼容性误解,如"a" as "b"这种代码是不会报错的。

interface和type的不一致行为(初遇还以为自己写错类型,一脸懵逼的):

type Type = { key: "value" } interface Interface { key: "value" } type 似乎没差别都是true = Type extends Interface ? Type extends Interface ? true : false : false type 坑点 = { [key: string]: 坑点 } | string type 测试<T> = T extends 坑点 ? true : false type 这个是true = 测试<Type> type 这个是false = 测试<Interface>

github上官方有说明,是故意留这么个坑的。说是因为interface可扩展(同名自动合并),所以不便检测。

用泛型实现函数重载的效果时,在函数的实现中,会因泛型不具备具体约束,导致经常需要使用as强制断言。

阅读全文
标签:地方

本文共计1321个文字,预计阅读时间需要6分钟。

TypeScript中那些让人头疼的细节,如何高效解决?

记录一些在ts上浪费过时间的地方:

1. 错误理解Stackoverflow:Stackoverflow上几乎所有问题都有答案,但百度可能不太适用。

2.对as断言的误解:例如,`a as b`这种代码不会报错。

3.interface和type的不一致使用:两者在ts中的作用类似,但使用方式有区别。

记录一些自己在ts上费过时间的地方。

(先吐个槽:stackoverflow是真的啥都有,百度是真的没法用)

as断言的兼容性误解,如"a" as "b"这种代码是不会报错的。

interface和type的不一致行为(初遇还以为自己写错类型,一脸懵逼的):

type Type = { key: "value" } interface Interface { key: "value" } type 似乎没差别都是true = Type extends Interface ? Type extends Interface ? true : false : false type 坑点 = { [key: string]: 坑点 } | string type 测试<T> = T extends 坑点 ? true : false type 这个是true = 测试<Type> type 这个是false = 测试<Interface>

github上官方有说明,是故意留这么个坑的。说是因为interface可扩展(同名自动合并),所以不便检测。

用泛型实现函数重载的效果时,在函数的实现中,会因泛型不具备具体约束,导致经常需要使用as强制断言。

阅读全文
标签:地方