【发布时间】:2021-11-10 18:12:20
【问题描述】:
我有一个函数selectProperties 从某个界面选择键值并在升级到 typescript 4.4 后得到错误error TS2322: Type 'keyof T' is not assignable to type 'T'.。
typescript playground,有人知道我怎么走吗?
export interface QueryActioned {
event: string;
properties:string
}
export interface QueryStarted {
event: number
properties: number
}
export type QueryProps = Partial<(QueryActioned & QueryStarted)['properties']>;
const selectProperties = <T extends Partial<QueryProps>>(
keys: (keyof T)[],
properties: T
): T => {
const defaultVal: T = {} as T;
return (Object.keys(properties) as (keyof T)[])
.filter((key) => keys.includes(key))
.reduce(
(acc, key) => ({
...acc,
[key]: properties[key],
}),
defaultVal
);
};
【问题讨论】:
标签: typescript typescript-typings typescript-generics typescript2.0