[我在Angular项目中使用Ramda(并因此与TypeScript一起使用),当我使用某些Ramda函数(例如R.prop
时,会出现类似“参数类型与参数不匹配”]]或类似的错误。例如。对于R.prop
,在:
function foobar() { return R.sortBy( R.prop('code'), /* ... */ ); }
但是当我将
R.prop('code')
调用更改为R.prop<string>('code')
时,一切正常。如何避免这样的显式声明?我缺少任何tsconfig标志吗?
N.b。 R.prop
的TS声明为:
/**
* 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;
我在Angular项目中使用Ramda(并因此与TypeScript一起使用),当我使用某些Ramda函数(如R.prop)时,出现诸如“参数类型与参数不匹配”之类的错误。例如。 ...
很可能这些TS定义是由@types/ramda
或@types/npm-ramda
提供的,很遗憾它们不一致。