【发布时间】:2021-04-07 03:44:20
【问题描述】:
我尝试理解代码(React 应用程序的一部分):
interface SearchProps<T> {
className?: string;
value?: T;
options?: T[];
onChange?: (event: object, value: T | string, reason: string) => void;
onInputChange?: (event: object, value: string, reason: string) => void;
onClear?: () => void;
renderOption?: FC<T>;
getOptionLabel?: (option: T) => string;
}
interface TranslatedSearchProps<T> extends SearchProps<T> {
t?: TFunction;
}
export const PureSearch = <T,>({
className,
value,
options,
onChange,
onInputChange,
onClear,
renderOption,
getOptionLabel,
t = (key: string) => key,
}: TranslatedSearchProps<T>) => {
return (
<Autocomplete
className={className}
freeSolo
disableClearable
options={options || []}
value={value}
onChange={onChange}
onInputChange={onInputChange}
renderInput={SearchAppBar(t, onClear)}
renderOption={
renderOption ||
((option: T) => <ListItemText primaryTypographyProps={{ variant: 'h6' }} primary={option} />)
}
getOptionLabel={getOptionLabel || ((o: T) => `${o}`)}
/>
);
};
【问题讨论】:
-
和
<T>一样,只是在React文件中解析器无法从没有逗号的JSX标签中分辨出来。 -
这能回答你的问题吗? In Typescript what does <T> mean?
-
@buzatto 我不确定这是一个有效的欺骗目标,问题已经提到了泛型,并且特定的语法是 React 特有的。
标签: reactjs typescript