【发布时间】:2020-04-04 05:56:08
【问题描述】:
我有一个函数负责扁平化对象属性。
async function query<T = {}>(query: string): Promise<T> {
return Promise.resolve({
value: 'random value here',
randomAttribute: 'randomValue'
}) as any
}
type QueryResult<T> = {
id: string
data: T
}
async function runSomeQuery() {
const result = await query<QueryResult<{ name: string, age: string }>>('SELECT SOMETHING FROM ANOTHER THING')
const parsedResult = flatResult(result)
return parsedResult.name
}
function flatResult<T extends QueryResult<{}>>(queryResult: T) {
return {
id: queryResult.id,
...queryResult.data
}
}
但是flatResult() 推断的返回类型缺少名称和年龄属性,所以当我尝试执行parsedResult.name 时出现错误。
那么,我应该怎么做才能让这个推断正确?
【问题讨论】:
标签: typescript