Using a Record Type for Dynamic Keys
That is shorter than:
Combining Know and Dynamic Keys
Interface extension is preferable to intersections.
PropertyKey
This is a global type for property keys
Utility Types
Partial
The Partial utility type lets you create a new object type from an existing one, except all of its properties are optional.
Required
On the opposite side of Partial is the Required type, which makes sure all of the properties of a given object type are required.
Pick
The Pick utility type allows you to create a new object type by picking certain properties from an existing object.
Omit
The Omit helper type is kind of like the opposite of Pick. It allows you to create a new type by excluding a subset of properties from an existing type.
Readonly
If you want to specify that all properties of an object should be read-only, TypeScript provides a type helper called Readonly.
ReturnType
The ReturnType utility type extracts the return type from a given function:
Parameters
The Parameters utility type extracts the parameters from a given function type and returns them as a tuple.
Awaited
The Awaited utility type is used to unwrap the Promise type and provide the type of the resolved value. Think of it as a shortcut similar to using await or .then() methods.
References: Typescript Javascript