我有一个组件Checkbox.tsx
,它的ts界面看起来像这样:
export interface ICheckbox {
/** DOM element id. */
id: string;
/** Handler to the onClick event */
onCheck?: (e: React.ChangeEvent<HTMLInputElement>) => void;
}
现在,我想创建另一个组件CheckboxWithLabel.tsx
,它将具有非常相似的界面,唯一要做的就是添加标签。如何合并两个接口或扩展现有接口?像这样:
import {ICheckbox} from './Checkbox.tsx';
export interface ICheckboxLabel {
...ICheckbox,
label: string;
}
我尝试过的是:
export interface ICheckboxLabel extends ICheckbox{
children: JSX.Element | JSX.Element[] | string;
}
问题是,我不知道这是否是正确的方法。
答案 0 :(得分:3)
您可以使用extend关键字导出接口。
interface a extends b {
...
}
在您的示例中,就像。
export interface ICheckboxLabel extends ICheckbox {
label: string
}
也请访问官方文档以获取更多信息https://www.typescriptlang.org/docs/handbook/interfaces.html