TypeScript utility types: Pick and Omit