TypeScript, ¿puedo usar un tipo genérico en el cuerpo de la función?
tengo una declaración de función así:
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];
}
};
pero, TypeScript marca este código como Error, ¿podemos usar tipos genéricos en el cuerpo de la función?
const filteredOptions: OptionsArray<OptionValueType> = [];
TS2304: Cannot find name 'OptionValueType'
Respuesta #1
Puedes usar el parámetro de tipo genérico en el cuerpo, pero el parámetro de tipo genérico tiene que estar en la implementación de la función, no en la variable que contendrá la función
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];
}
};
