Ant-design: [功能请求]所有组件index.d.ts文件中的导出道具接口定义

创建于 2017-06-23  ·  8评论  ·  资料来源: ant-design/ant-design

此功能可以解决什么问题?

将标准的Props接口定义为public可以在创建我自己的组件的自定义版本时重用Props定义。

建议的API是什么样的?

例如,在创建我的登录组件时,我必须:

import { FormComponentProps } from 'antd/lib/form/Form'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

但是以下可能更好:

import { FormComponentProps } from 'antd'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

至少:

import { FormComponentProps } from 'antd/lib/form'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

就像这个基于TS的UI包一样:蓝图

help wanted 🗣 Discussion

最有用的评论

我认为第一个更好。

选择第二种方式可能是因为第一种公开的方式可能也有接口,但是这些接口在使用TypeScript时非常有用,那些不使用TS的人根本看不到它们。

TS编写的许多框架会将接口暴露在最外面,并且没有发现任何问题。

当然,第二种方式可以满足需求。 该问题的目的是统一接口的暴露位置。 当前情况是lib/[component name]/文件夹中的接口位置无法预测。

但我仍然希望可以采用第一个,谢谢。

所有8条评论

我认为以下内容已足够:

import { FormComponentProps } from 'antd/lib/form'

class Login extends React.Component<{} & FormComponentProps, {}> {
  render() {
    // some render code
  }
}

我认为第一个更好。

选择第二种方式可能是因为第一种公开的方式可能也有接口,但是这些接口在使用TypeScript时非常有用,那些不使用TS的人根本看不到它们。

TS编写的许多框架会将接口暴露在最外面,并且没有发现任何问题。

当然,第二种方式可以满足需求。 该问题的目的是统一接口的暴露位置。 当前情况是lib/[component name]/文件夹中的接口位置无法预测。

但我仍然希望可以采用第一个,谢谢。

嗨,我试图找出原因对我不起作用,但是,我有这个错误node_modules / antd / lib / form / index“'没有导出的成员'FormComponentProps'。

我的解决方法是从'antd / lib / form / Form'导入{FormComponentProps};

我做错了什么?

@戴维·诺雷纳(DavidNorena)

您是说您尝试这样做: import { FormComponentProps } from 'antd/lib/form ,但收到错误消息?

当然,这是一个错误,因为FormComponentProps不在lib/form dir中公开,这就是为什么我提交此问题的原因:)

@newraina ahhhh现在我明白了! :D抱歉,所以与此同时,我将使用来自'antd / lib / form / Form'的import {FormComponentProps}; 好 ?

@DavidNorena是的

您可以为此提供帮助。

此页面是否有帮助?
0 / 5 - 0 等级