将 Ramda 与 Typescript 一起使用,传递类型

Using Ramda with Typescript, passing down the types

我有这个小功能,firstOrNull:

import { propOr } from 'ramda'

export const firstOrNull = propOr(null, '0')

我想与 属性 一起使用 returns QueryDocumentSnapshot<DocumentData>[]

const organization = firstOrNull(snapshot.docs)?.data() as Organization

因为 firstOrNull 上没有打字,我得到了错误:

Object is of type 'unknown'

我需要做什么才能在 firstOrNull 上使用正确的类型?

可能会改成这样:

export const firstOrNull:<T[]> = propOr<null, T, number>(null, 0)

根据接收到的数组向 firstOrNull 添加显式类型,以便它可以推断出正确的类型:

export const firstOrNull: <T>(arr: T[]) => T | null = propOr(null, '0')