antd 对 TypeScript 的支持怎么样?

2022-04-26 11:53:12 +08:00
 Biwood

最近尝试用 antd 4.x 结合 TypeScript 写了个 demo ,发现声明组件的回调函数时遇到一些参数类型找不到的问题,想知道这种情况是很常见的吗,最终都只能用 any 来解决?那这样似乎就失去了用 TypeScript 的意义。

目前用 antd + TypeScript 写项目的人多吗,开发体验如何?

1473 次点击
所在节点    前端开发
6 条回复
yunying
2022-04-26 12:18:44 +08:00
一直有用,没什么问题,你说的组件回调函数也是有类型提示。不知道你遇到什么问题?能具体贴出来不?
rioshikelong121
2022-04-26 12:21:08 +08:00
没问题。
Immortal
2022-04-26 12:45:25 +08:00
"发现声明组件的回调函数时遇到一些参数类型找不到的问题,想知道这种情况是很常见的吗"

这个问题其实需要从组件源码里看下用的数据类型,
然后再找下哪里导出了(例如 antd/es or antd/lib)自己指定数据类型后就有提示了
不过确实偶尔会有 any,很少
Biwood
2022-04-26 13:35:48 +08:00
@yunying
@Immortal

我遇到的问题是,在定义 `DatePicker` 组件的 `onChange` 回调函数时,需要定义参数类型,第一个参数看 VS Code 提示是 `DateType |null ` 类型,但是我找不到任何地方可以 import 这个类型,包括 `antd/lib` 和 `rc-picker/lib`

另外,我看官方文档标注的第一个参数的类型是 `moment`,然后 VS Code 提示却是 `DateType | null`, 不知道是不是因为 4.x 版作了调整,文档还没更新?
rabbbit
2022-04-26 14:50:25 +08:00
可以用 Parameters 获取函数的参数类型
例如:
function foo(a: string) {}
type arg = Parameters<typeof foo>[0]
const bar: arg = 'a';
onec
2022-05-01 18:11:25 +08:00
写成 (value: Moment | null ) => {} 就能过了, DateType 是个泛型

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX