#javascript #typescript
#javascript #typescript
Вопрос:
С помощью следующего кода, как бы я заменил any
s, если это вообще возможно. Я хотел бы удалить предупреждение из TS «Неожиданный любой. Укажите другой тип»
interface Props {
isPrime: boolean;
}
interface Other {
isEdit: boolean;
}
type TFunc = (a: any, b: any) => any;
const myFunc = (c: TFunc) => (a: any) => (b: any) => c(a, b);
const funcA = myFunc((props: Props, other: Other) => {
// ..somecode
}
// Code to call the func A result ect.
Комментарии:
1. Подсказка:
myFunc
должно быть названоcurry
, это стандартное имя для этой функции. При поиске этого термина вы найдете множество общих типов для него.2. Спасибо Берги. Будем иметь это в виду
Ответ №1:
Используйте универсальный тип
interface Props {
isPrime: boolean;
}
interface Other {
isEdit: boolean;
}
type TFunc<T, U> = (a: T, b: U) => any;
const myFunc = <T, U>(c: TFunc<T, U>) => (a: T) => (b: U) => c(a, b);
const funcA = myFunc<Props, Other>((props: Props, other: Other) => {
// ..somecode
});
Комментарии:
1. Блестяще. Спасибо
2.
any
Остался еще один, который следует сделать параметром типа…