For instance, what if I want to remove a deeply nested field like `user.profile.email` and also something like `user.posts[].meta.shares` from a type?
TypeScript doesn't really provide a built-in way to do that.
So I built *DeepStrictTypes* — a utility that lets you *omit deeply nested keys*, even inside arrays, with full type inference and strictness.
Here’s an example:
```ts type Example = { user: { id: string; profile: { name: string; age: number; email: string; }; posts: { title: string; content: string; meta: { likes: number; shares: number; }; }[]; }; };
// Remove 'user.profile.email' and 'user.posts[].meta.shares' type Omitted = DeepStrictOmit< Example, 'user.profile.email' | 'user.posts[*].meta.shares' >; ```
The resulting type:
```ts { user: { id: string; profile: { name: string; age: number; }; posts: { title: string; content: string; meta: { likes: number; }; }[]; }; } ```
Works great for: - Cleaning up types for API responses - Dynamically transforming deeply nested data - Improving type safety when handling structured JSON
[https://github.com/kakasoo/deepstricttypes](https://github.com/kakasoo/deepstricttypes) Would love your feedback or ideas for improvements!