const myArray: { key: 'a' | 'b', value: number }[] = [
{ key: 'a', value: 42 },
{ key: 'a', value: 43 },
{ key: 'b', value: 44 }
]
// Record<string, number[]>
const actual = ReadonlyArray.groupBy(myArray, v => v.key)
// which is not so useful if I want to be sure to later access it with 'a' | 'b' only and expect at least one value
// Partial<Record<'a' | 'b', NonEmptyArray<number>>>
const desired = ReadonlyArray.groupBy(myArray, v => v.key, { partial: true })
// here I'm prevented from doing desired['anykey'] rightly so
const myArray: { key: 'a' | 'b', value: number }[] = [
{ key: 'a', value: 42 },
{ key: 'a', value: 43 },
{ key: 'b', value: 44 }
]
// Record<string, number[]>
const actual = ReadonlyArray.groupBy(myArray, v => v.key)
// which is not so useful if I want to be sure to later access it with 'a' | 'b' only and expect at least one value
// Partial<Record<'a' | 'b', NonEmptyArray<number>>>
const desired = ReadonlyArray.groupBy(myArray, v => v.key, { partial: true })
// here I'm prevented from doing desired['anykey'] rightly so