将标准的Props接口定义为public可以在创建我自己的组件的自定义版本时重用Props定义。
例如,在创建我的登录组件时,我必须:
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包一样:蓝图
我认为以下内容已足够:
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是的
您可以为此提供帮助。
最有用的评论
我认为第一个更好。
选择第二种方式可能是因为第一种公开的方式可能也有接口,但是这些接口在使用TypeScript时非常有用,那些不使用TS的人根本看不到它们。
TS编写的许多框架会将接口暴露在最外面,并且没有发现任何问题。
当然,第二种方式可以满足需求。 该问题的目的是统一接口的暴露位置。 当前情况是
lib/[component name]/
文件夹中的接口位置无法预测。但我仍然希望可以采用第一个,谢谢。