Ramda 的 LensProp 类型定义
LensProp Type Definition of Ramda
当使用 Ramda 的 lensProp
像:
R.lensProp('x')
我收到这个错误:
Argument of type 'string' is not assignable to parameter of type 'never'.ts(2345)
看起来你需要传入你希望 lensProp
操作的类型,这样它就知道在使用时 return 是什么类型。您可以通过传递通用参数来做到这一点。
这是经过修改的 example from the docs,可以很好地与 typescript 搭配使用:
import R from 'ramda'
interface Point {
x: number
y: number
}
const xLens = R.lensProp<Point>('x');
R.view(xLens, {x: 1, y: 2}); //=> 1
R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}
R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}
当使用 Ramda 的 lensProp
像:
R.lensProp('x')
我收到这个错误:
Argument of type 'string' is not assignable to parameter of type 'never'.ts(2345)
看起来你需要传入你希望 lensProp
操作的类型,这样它就知道在使用时 return 是什么类型。您可以通过传递通用参数来做到这一点。
这是经过修改的 example from the docs,可以很好地与 typescript 搭配使用:
import R from 'ramda'
interface Point {
x: number
y: number
}
const xLens = R.lensProp<Point>('x');
R.view(xLens, {x: 1, y: 2}); //=> 1
R.set(xLens, 4, {x: 1, y: 2}); //=> {x: 4, y: 2}
R.over(xLens, R.negate, {x: 1, y: 2}); //=> {x: -1, y: 2}