UserProfile = { type: Roles.Admin, department: string, project:string } | { type: Roles.User, project:string } | { type: Roles.Client, product:string }; function printProfile( user : UserProfile) { switch (user.type) { case Roles.Admin: return `department ${user.department} - project ${user.project}` case Roles.User: return `project ${user.project}` case Roles.Client: return `product ${user.product}` } } let x: [string, number] = ["hello", 10]