import { Gender } from '../ageGenderNet/types'; import { isValidProbablitiy } from '../utils/index'; export type WithGender = TSource & { gender: Gender genderProbability: number } export function isWithGender(obj: any): obj is WithGender<{}> { return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE) && isValidProbablitiy(obj.genderProbability); } export function extendWithGender< TSource >( sourceObj: TSource, gender: Gender, genderProbability: number, ): WithGender { const extension = { gender, genderProbability }; return { ...sourceObj, ...extension }; }