最近我发现自己做了很多事情
interface Props = {
onPress: TouchableWithoutFeedback.onPress
}
本质上,我是在围绕本机组件构建自己的“包装器”组件,这些包装器组件通常采用类似的道具作为它们包装的本机组件。我必须总是重新键入这些道具。
我不想扩展本机组件的所有道具,而是公开一些非常具体的道具。做这样的事情真棒
ONLY_ACTIVE_ARCH = NO;
不幸的是,这不起作用,但是由于我没有定义自己的类型,类似这样的东西对道具安全性有很大帮助。
这可以通过某种方式实现吗?
答案 0 :(得分:3)
您需要使用类型定义,而不是类本身。假设您已安装@types/react-native
:
import { TouchableWithoutFeedbackProps } from 'react-native'
interface Props {
onPress: TouchableWithoutFeedbackProps["onPress"] // <-- must be bracket notation
}
我认为它们的所有道具属性定义都遵循相同的命名模式,因此View
将是ViewProps
,Text
将是TextProps
等
括号表示法是因为点表示法仅对ts中的名称空间有效