TypeScript Discriminated Unions: narrowing أقوى من optional | أحمد حايس