使う時忘れる時が多いから、記録しておきます。
// undefined を含む配列
const array: (number | undefined)[] = [1, 2, undefined, 3 , 4];
// データは除外したが、型には undefined が残ったまま
array.filter(item => item !== undefined); // [number | undefined]
// データ、型ともに undefined を除外した
array.filter((item): item is Exclude<typeof item, undefined> => item !== undefined); // [number]