typescript - 如何从接口中省略一个属性,而不是 TypeScript 中的类型?
问题描述
我需要创建一个从 2 扩展的接口,但我收到错误: 接口“IModalProps”不能同时扩展类型“ModalProps”和“ModalRNProps”。“ModalProps”和“ModalRNProps”类型的命名属性“onShow”不相同。:
export interface IModalProps extends ModalProps, ModalRNProps {
showCloseButton?: boolean;
showDoneBar?: boolean;
}
我只能省略这样的类型:
type OmitA = Omit<ModalProps, "onShow">;
但是我不能在使用类型进行扩展之后,因为只有接口才有可能。你能告诉我,我怎样才能从接口中省略一个属性,然后从几个接口创建一个可扩展接口?
解决方案
尝试接口而不是类型
export interface IModalProps {
showCloseButton?: boolean;
showDoneBar?: boolean;
}
export interface Test extends Omit<IModalProps, 'showDoneBar'> {
}
const test: Test = {
showCloseButton: true,
showDoneBar: false, // fails
};
推荐阅读
- php - codeigniter 学说 getRepository() 在本地工作但不在服务器上
- jquery - SVG 仅在具有隐私浏览的移动 Safari 中呈现
- xml - XML - 在文件路径中包含当前月份
- c# - Winforms DbContext Per Form
- google-cloud-platform - gcloud 数据存储模拟器:[Errno 8] 提供节点名或服务名,或未知
- c++ - 在 switch 块中使用 QVariant::Type 的用户类型的 GCC 警告
- python - 连接标记的数组数组
- python-3.x - RecursionError:酸洗对象时超出最大递归深度
- r - 需要做一个带有大量 xlab 值的条形图。我如何让它们合身?
- jenkins - 在 Jenkins 的 plugins.txt 中添加注释