export function except(src: T[], exclusion: T[]): T[] { const set = new Set(exclusion); return src && src.filter(item => !set.has(item)); } export function intersect(src: T[], inter: T[]): T[] { const set = new Set(inter); return src && src.filter(item => set.has(item)); }