Я использую Ramda в проекте Angular (и, следовательно, с TypeScript), и когда я использую некоторые функции Ramda, такие как R.prop
, я получаю ошибки, такие как "Типы аргументов не соответствуют параметрам" или похожие. Например, для R.prop
in:
function foobar() {
return R.sortBy(
R.prop('code'),
/* ... */
);
}
Но когда я изменяю вызов R.prop('code')
на R.prop<string>('code')
, все работает нормально. Как я могу избежать таких явных объявлений? Есть ли какой-либо флаг tsconfig, который я пропускаю?
Примечание: объявление TS для R.prop
:
/**
* Returns a function that when supplied an object returns the indicated property of that object, if it exists.
*/
export function prop<T>(__: Placeholder, obj: T): <P extends keyof T>(p: P) => T[P];
export function prop<P extends keyof T, T>(p: P, obj: T): T[P];
export function prop<P extends string>(p: P): <T>(obj: Record<P, T>) => T;
export function prop<P extends string, T>(p: P): (obj: Record<P, T>) => T;