some examples of type resolution Interface 1.1 Basic Types 1.2 Union Types 1.3 Intersection Types 1.4 Array Types 1.4.1 Basic Array Types 1.4.2 Complex Array Types 1.5 Nesting 1.5.1 Nested Basic Types 1.5.2 Nested Union Types 1.5.3 Nested Intersection Types 1.5.4 Nested Intersection Array Types 1.5.5 Nested loop 1.6 Index Types Modules 1.1 Basic Modules 1.2 Named Export Modules Extending Types 1.1 Basic Extending Types 1.2 Multiple Extending Types Enums 1.1 Numeric Enums 1.2 String Enums 1.3 Computed Enums 1.4 Complex Enums 1.4.1 Basic Interface to Enums 1.4.2 Complex Interface to Enums Generics 1.1 Basic Generics 1.2 Complex Generics Namespaces 1.1 Basic Namespaces 1.2 Complex Namespaces Type 1.1 Basic Types 1.2 Complex Types 1.2.1 Union Types 1.2.2 Union Array Types 1.2.3 Import Enums Utility Types 1.1 Utility for Objects 1.1.1 Omit 1.1.1.1 Basic Omit 1.1.1.2 Union Omit 1.1.1.3 Import Omit 1.1.2 Pick 1.1.2.1 Basic Pick 1.1.2.2 Import Pick 1.1.3 Record 1.1.2.1 Basic Record 1.1.2.2 Import Record Annotations 1.1 Single-line annotations 1.2 Single-line annotations with default value 1.3 Multi-line annotations 1.4 Multi-line annotations with default value 1.5 Mixed annotations with default value