我有这样的函数声明:
export const filterOptions: <OptionValueType>(options: OptionsArray<OptionValueType>, filterBy: string) => OptionsArray<OptionValueType> = (options, filterBy) => {
if (filterBy === '') {
return [...options];
} else {
const filteredOptions: OptionsArray<OptionValueType> = [];
// filter and return options
return [...filteredOptions];
}
};
但是,打字稿将此代码标记为错误,我们可以在函数体中使用泛型吗?
const filteredOptions: OptionsArray<OptionValueType> = [];
TS2304:找不到名称“ OptionValueType”
答案 0 :(得分:0)
您可以在主体中使用通用类型参数,但是通用类型参数必须位于函数实现上,而不位于将保留该函数的变量上
export const filterOptions = <OptionValueType>(options: OptionsArray<OptionValueType>, filterBy: string) : OptionsArray<OptionValueType> => {
if (filterBy === '') {
return [...options];
} else {
const filteredOptions: OptionsArray<OptionValueType> = [];
// filter and return options
return [...filteredOptions];
}
};