“参数类型与参数不匹配”(TypeScript和Ramda)

问题描述 投票:0回答:1

[我在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)时,出现诸如“参数类型与参数不匹配”之类的错误。例如。 ...

angular typescript ramda.js
1个回答
0
投票

很可能这些TS定义是由@types/ramda@types/npm-ramda提供的,很遗憾它们不一致。

© www.soinside.com 2019 - 2024. All rights reserved.