考虑到我有一个输入元素,我正在向其动态传递属性
<input
{...props}
/>
这里的道具可能包括也可能不包括某些属性
<Input
label="Searchable"
type="checkbox"
checked={this.state.searchable}
onChange={() =>
this.setState({ searchable: !this.state.searchable })
}
/>
我上面的道具会是什么类型?
答案 0 :(得分:0)
由于缺乏详细信息而无法完全理解您的问题,但这是您要查找的内容:
这里所有字段都是可选的,您可以根据用例修改它们的类型, 例如,
type InputProps = {
label?: string
type?: string
checked?: boolean
onChange?: () => void
}
答案 1 :(得分:0)
如果我对您的问题理解正确,那么您在问对象是什么类型的,该对象在创建Input时作为概率传递。
在这种情况下,它将是“:any”或更具体的“:object”。不是原始类型的所有内容都具有类型对象。
更多详细信息: https://www.typescriptlang.org/docs/handbook/basic-types.html#object
理想情况下,您为Input类或函数创建了一个接口,仍然可以像现在一样传递它们。如果不需要,您还可以将某些道具设为可选。
示例:
//input.ts
export interface IInputProps {
label: string;
type: string;
checked?: boolean;
onChange: () => void;
}
export default function Input(props: IInputProps) {
//...
const label:string = props.label;
//...
}