【发布时间】:2021-10-19 14:24:39
【问题描述】:
我有一个选择函数,可以从对象中选择属性。显然我希望返回类型反映生成的新类型。
const getIdentifier = pick(['type', 'id'])
const result = getIdentifier(record)
// works as expected
const id = result.id
// is missing as expected
const name = result.attributes.name
但是一旦我在 compose 类型函数中使用该函数,它就不再推断它的类型:
const run = compose(
// doesnt infer type, id constrain, why not???
(identifier) => identifier,
getIdentifier,
// infers RecordJson
(rec) => rec,
getRecord
)
在playground查看完整的类型和示例。
TypesScript 无法做到这一点吗?它能够做到吗?我有什么办法可以让它工作吗?
提前致谢!
【问题讨论】:
-
你可以查看我关于打字撰写功能的文章catchts.com/FP-style#compose
-
考虑使用 TS 4.5 这个方法,它允许你处理超过 10 个函数
标签: typescript