🅰️
Typescript でオブジェクトの undefined の値を消す
概要
TypeScript でオブジェクトのプロパティをフィルタリングするための関数です。
より一般的な filterProperties
という関数をまず作成しました。
関数 filterUndefinedProperties
は特化した関数で、与えられたオブジェクトから undefined
の値を持つプロパティを除外します。
プロパティのフィルタリングの後で type assertion をして Partial<T>
を返します。
実装
export const filterProperties = <T extends object>(
obj: T,
filterFn: (key: string, value: unknown) => boolean,
): Partial<T> => {
return Object.fromEntries(
Object.entries(obj).filter(([key, value]) => filterFn(key, value)),
) as Partial<T>;
};
export const filterUndefinedProperties = <T extends object>(
obj: T,
): Partial<T> => filterProperties(obj, (_key, value) => value !== undefined);
実行例
Discussion
ぼくも少し方針を変えて
JsonCompat[ible]
なアプローチでチャレンジしてみました。定義側
使用側
demo code.