chenyc
2025-05-29 92f69c57b920cf62ecc9f15f9ed196fa26dbf2ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { Gender } from '../ageGenderNet/types';
import { isValidProbablitiy } from '../utils/index';
 
export type WithGender<TSource> = 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<TSource> {
  const extension = { gender, genderProbability };
  return { ...sourceObj, ...extension };
}