V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Biwood
V2EX  ›  前端开发

antd 对 TypeScript 的支持怎么样?

  •  
  •   Biwood ·
    oodzchen · 2022-04-26 11:53:12 +08:00 · 1533 次点击
    这是一个创建于 972 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    这个问题其实需要从组件源码里看下用的数据类型,
    然后再找下哪里导出了(例如 antd/es or antd/lib)自己指定数据类型后就有提示了
    不过确实偶尔会有 any,很少
    Biwood
        4
    Biwood  
    OP
       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
        5
    rabbbit  
       2022-04-26 14:50:25 +08:00   ❤️ 1
    可以用 Parameters 获取函数的参数类型
    例如:
    function foo(a: string) {}
    type arg = Parameters<typeof foo>[0]
    const bar: arg = 'a';
    onec
        6
    onec  
       2022-05-01 18:11:25 +08:00   ❤️ 1
    写成 (value: Moment | null ) => {} 就能过了, DateType 是个泛型
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3173 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 12:57 · PVG 20:57 · LAX 04:57 · JFK 07:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.