Biwood

antd 对 TypeScript 的支持怎么样?

  •  
  •   Biwood ·
    oodzchen · Apr 26, 2022 · 2251 views
    This topic created in 1484 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

    另外,我看官方文档标注的第一个参数的类型是 `moment`,然后 VS Code 提示却是 `DateType | null`, 不知道是不是因为 4.x 版作了调整,文档还没更新?
    rabbbit
        5
    rabbbit  
       Apr 26, 2022   ❤️ 1
    可以用 Parameters 获取函数的参数类型
    例如:
    function foo(a: string) {}
    type arg = Parameters<typeof foo>[0]
    const bar: arg = 'a';
    onec
        6
    onec  
       May 1, 2022   ❤️ 1
    写成 (value: Moment | null ) => {} 就能过了, DateType 是个泛型
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1018 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 86ms · UTC 22:08 · PVG 06:08 · LAX 15:08 · JFK 18:08
    ♥ Do have faith in what you're doing.