0

我在打字稿中使用 ramda 使用下面的代码,它一直显示类型不匹配的错误:

R.pipe(R.drop(2), R.dropLast(5))("hello world");

TS2769:没有重载匹配此调用。最后一个重载给出了以下错误。'{ (xs: string): string; 类型的参数 (xs: 只读未知[]): 未知[]; }' 不可分配给类型为 '(x0: readonly unknown[], x1: unknown, x2: unknown) => string' 的参数。参数“xs”和“x0”的类型不兼容。类型 'readonly unknown[]' 不可分配给类型 'string'。

应该如何解决这个问题?

4

1 回答 1

2

似乎类型推断需要一些额外的帮助才能让它知道您希望将类型缩小到string.

例如

R.pipe<string, string, string>(R.drop(2), R.dropLast(5))("hello world")
// or
R.pipe(R.drop(2) as (str: string) => string, R.dropLast(5))("hello world")
于 2020-05-26T11:53:02.670 回答