有哪些TypeScript编程难题让你花费了大量时间?

更新于
2026-09-27 23:14:40
0阅读来源:SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

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

有哪些TypeScript编程难题让你花费了大量时间?

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

1. Stackoverflow上几乎所有问题都有解答,百度上是真的没方法用。

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

3.interface和type的不一致行为。

记录一些自己在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强制断言。

阅读全文
标签:地方总

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

有哪些TypeScript编程难题让你花费了大量时间?

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

1. Stackoverflow上几乎所有问题都有解答,百度上是真的没方法用。

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

3.interface和type的不一致行为。

记录一些自己在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强制断言。

阅读全文
标签:地方总