Total Typescript – Professional TypeScript Training by Matt Pocock
ps:英文教程,不做介绍了
资源目录
/计算机教程QTDLG/09-其他/467-Total Typescript – Professional TypeScript Training by Matt Pocock/
0001_Type_Transformations_Workshop_Welcome_Explainer.mp4 38.68M
0002_Get_the_Return_Type_of_a_Function.mp4 3.87M
0003_Use_a_Utility_Type_to_Extract_a_Functions_Return_Type.mp4 10.63M
0004_Typeof_Keyword_and_Type_Level.mp4 77.81M
0005_Extract_Function_Parameters_Into_A_Type.mp4 3.12M
0006_Use_a_Utility_Type_to_Extract_Function_Parameters.mp4 5.59M
0007_Extract_The_Awaited_Result_of_a_Promise.mp4 4.25M
0008_Use_Utility_Types_To_Extract_a_Promise_s_Result.mp4 6.49M
0009_Create_a_Union_Type_From_an_Objects_Keys.mp4 3.62M
0010_Create_Unions_from_Objects_Using_Two_Operators.mp4 10.29M
0011_Understand_The_Terminology_Around_Unions.mp4 2.46M
0012_Union_Terminology_Examples.mp4 10.75M
0013_Extracting_Members_of_a_Discriminated_Union.mp4 4.65M
0014_Extract_From_A_Union_Using_a_Utility_Type.mp4 10.87M
0015_Excluding_Parts_of_a_Discriminated_Union.mp4 2.15M
0016_Use_a_Utility_Type_to_Remove_a_Single_Member_of_a_Union.mp4 3.44M
0017_The_Power_of_Union_Types_in_TypeScript_Explainer.mp4 76.20M
0018_Extract_Object_Properties_into_Individual_Types.mp4 4.66M
0019_Use_Indexed_Access_Types_to_Extract_Object_Properties.mp4 8.68M
0020_Extract_the_Discriminator_from_a_Discriminated_Union.mp4 2.28M
0021_Simple_Syntax_Used_to_Access_Parts_of_a_Discriminated_Union.mp4 5.47M
0022_Resolve_an_Objects_Values_as_Literal_Types.mp4 10.53M
0023_The_Annotation_Used_to_Infer_an_Object_s_Values_as_Literal_Types.mp4 25.30M
0024_Create_a_Union_From_an_Object_s_Values.mp4 5.81M
0025_Extract_Specific_Members_From_A_Union_with_Indexed_Access.mp4 8.63M
0026_Get_All_of_an_Objects_Values.mp4 2.87M
0027_Use_Two_Operators_With_Indexed_Access_to_Get_All_of_an_Object_s_Values.mp4 5.85M
0028_Create_Unions_out_of_Array_Values.mp4 1.65M
0029_Methods_Used_to_Create_Unions_out_of_Array_Values.mp4 8.07M
0030_Only_Allow_Specified_String_Patterns.mp4 4.19M
0031_Template_Literal_with_Strings.mp4 6.57M
0032_Extract_Union_Strings_Matching_a_Pattern.mp4 5.99M
0033_Extracting_String_Pattern_Matches_with_Template_Literals.mp4 6.29M
0034_Create_a_Union_of_Strings_with_All_Possible_Permutations_of_Two_Unions.mp4 4.51M
0035_Passing_Unions_Into_Template_Literals.mp4 8.06M
0036_Splitting_A_String_into_a_Tuple.mp4 4.57M
0037_Using_S_From_ts_toolbelt_to_Split_a_String_Into_a_Tuple.mp4 7.11M
0038_Create_an_Object_Whose_Keys_Are_Derived_From_a_Union.mp4 3.77M
0039_Use_a_Utility_Type_to_Create_An_Object_From_A_Union.mp4 6.58M
0040_Transform_String_Literals_To_Uppercase.mp4 3.47M
0041_Manipulate_String_Literals_Using_Type_Helpers.mp4 7.97M
0042_Template_Literals_in_Mattermost_Explainer.mp4 15.16M
0043_Introducing_Type_Helpers.mp4 4.90M
0044_Create_Functions_that_Return_Types.mp4 18.83M
0045_Creating_a_Maybe_Type_Helper.mp4 2.48M
0046_The_Unconstrained_Maybe_Type_Helper.mp4 9.55M
0047_Ensure_Type_Safety_in_a_Type_Helper.mp4 7.14M
0048_Use_Constraints_to_Limit_Type_Parameters.mp4 22.33M
0049_Create_a_Reusable_Type_Helper.mp4 3.14M
0050_Add_Support_for_Multiple_Types_in_a_Type_Helper.mp4 3.56M
0051_Optional_Type_Parameters_in_Type_Helpers.mp4 5.40M
0052_Set_a_Default_Type_Value_in_a_Type_Helper.mp4 12.60M
0053_Functions_as_Constraints_for_Type_Helpers.mp4 6.54M
0054_Support_Function_Type_Constraints_with_Variable_Arguments.mp4 19.79M
0055_Constraining_Types_for_Anything_but_null_or_undefined.mp4 3.79M
0056_Exclude_null_and_undefined_from_the_Maybe_Type.mp4 22.17M
0057_Constraining_Type_Helpers_to_Non_Empty_Arrays.mp4 2.95M
0058_Enforce_a_Minimum_Array_Length_in_a_Type_Helper.mp4 12.25M
0059_Explainer_Type_Helpers_in_Redux.mp4 45.42M
0060_Add_Conditional_Logic_to_a_Type_Helper.mp4 4.42M
0061_Compare_and_Return_Values_with_Extends_and_the_Ternary_Operator.mp4 14.97M
0062_Refine_Conditional_Logic_in_a_Type_Helper.mp4 6.71M
0063_Prevent_Unwanted_Type_Scenarios_from_Happening.mp4 17.34M
0064_How_TypeScript_Added_Conditional_Types_Explainer.mp4 70.01M
0065_Introducing_infer_for_Conditional_Logic.mp4 8.33M
0066_Infer_Elements_Inside_a_Conditional_with_Infer.mp4 19.06M
0067_Extract_Type_Arguments_to_Another_Type_Helper.mp4 6.72M
0068_Use_infer_with_Generics_to_Extract_Types_from_Arguments.mp4 17.96M
0069_Extract_Parts_of_a_String_with_a_Template_Literal.mp4 3.90M
0070_Pattern_Matching_on_Template_Literals_with_Infer.mp4 9.95M
0071_Template_Literal_Types_Were_Nearly_Regexes_Explainer.mp4 124.09M
0072_Extract_the_Result_of_an_Async_Function.mp4 5.87M
0073_Optionally_Infer_the_Return_Type_of_a_Function.mp4 10.48M
0074_Extract_the_Result_From_Several_Possible_Function_Shapes.mp4 5.64M
0075_Two_Methods_for_Extracting_the_Result_of_Multiple_Possible_Functions.mp4 9.14M
0076_Distributivity_in_Conditional_Types.mp4 5.19M
0077_Using_Generic_Context_to_Avoid_Distributive_Conditional_Types.mp4 19.16M
0078_Map_Over_a_Union_to_Create_an_Object.mp4 3.84M
0079_Use_Mapped_Types_to_Create_an_Object_from_a_Union.mp4 13.14M
0080_Mapped_Types_with_Objects.mp4 4.04M
0081_Map_Over_the_Keys_of_an_Object.mp4 14.98M
0082_Transforming_Object_Keys_in_Mapped_Types.mp4 6.07M
0083_Remapping_Object_Keys_in_a_Mapped_Type.mp4 13.62M
0084_How_Excalidraw_uses_Mapped_Types_to_Save_Lines_of_Code_Explainer.mp4 13.08M
0085_Conditionally_Extract_Properties_from_Object.mp4 5.29M
0086_Selective_Remapping_with_Conditional_Types_and_Template_Literals.mp4 21.48M
0087_Map_a_Discriminated_Union_to_an_Object.mp4 4.86M
0088_Two_Techniques_for_Mapping_a_Discriminated_Union_to_an_Object.mp4 27.79M
0089_Map_an_Object_to_a_Union_of_Tuples.mp4 5.69M
0090_Create_a_Union_of_Tuples_by_Reindexing_a_Mapped_Type.mp4 13.14M
0091_Transform_an_Object_into_a_Union_of_Template_Literals.mp4 2.66M
0092_Map_an_Object_to_a_Union_of_Template_Literals.mp4 7.43M
0093_Transform_a_Discriminated_Union_into_a_Union.mp4 3.12M
0094_Iteratively_Map_and_Remap_to_Transform_Types.mp4 15.26M
0095_Transform_Path_Parameters_from_Strings_to_Objects.mp4 5.91M
0096_Extract_from_String_with_Mapped_Types_Template_Literals_and_infer.mp4 13.30M
0097_Transform_an_Object_into_a_Discriminated_Union.mp4 4.04M
0098_Create_a_Discriminated_Union_through_Intermediary_Transformations.mp4 17.57M
0099_Transform_a_Discriminated_Union_with_Unique_Values_to_an_Object.mp4 8.05M
0100_Create_an_Object_using_Mapped_Types_Conditional_Types_and_TypeScript_Keywords.mp4 15.22M
0101_Construct_a_Deep_Partial_of_an_Object.mp4 5.94M
0102_Use_Recursion_and_Mapped_Types_to_Create_a_Type_Helper.mp4 33.45M
0103_TypeScript_Generics_Workshop_Welcome.mp4 43.43M
0104_Typing_Functions_with_Generics.mp4 3.93M
0105_Replace_the_unknown_Type_with_a_Generic.mp4 10.99M
0106_Restricting_Generic_Argument_Types.mp4 2.27M
0107_Add_Constraints_to_a_Generic.mp4 6.81M
0108_Typing_Independent_Parameters.mp4 3.02M
0109_Use_Multiple_Generics_with_a_Function.mp4 8.95M
0110_Approaches_for_Typing_Object_Parameters.mp4 3.12M
0111_Approaches_for_Typing_Object_Parameters_Solution.mp4 12.36M
0112_Generic_Functions_in_Excalidraw.mp4 17.84M
0113_Generics_in_Classes.mp4 5.02M
0114_Add_Types_to_a_Class.mp4 7.81M
0115_Generic_Mapper_Function.mp4 7.02M
0116_Add_Object_Property_Constraints_to_a_Generic.mp4 17.52M
0117_The_Importance_of_Generics_in_TypeScript.mp4 63.76M
0118_Add_Type_Parameters_to_a_Function.mp4 4.20M
0119_Pass_Type_Arguments_to_a_Function.mp4 20.12M
0120_Defaults_in_Type_Parameters.mp4 3.14M
0121_Specify_a_Default_Value.mp4 5.61M
0122_Infer_Types_from_Type_Arguments.mp4 8.00M
0123_Infer_from_the_Type_Arguments_of_a_Class.mp4 16.23M
0124_Strongly_Type_a_Reduce_Function.mp4 8.35M
0125_Pass_Type_Arguments_to_a_Reduce_Function.mp4 33.16M
0126_Avoid_any_Types_with_Generics.mp4 3.19M
0127_Use_Generics_to_Type_a_Fetch_Request.mp4 28.68M
0128_Passing_Type_Arguments_in_cal_com.mp4 16.70M
0129_Improving_Code_Maintainability.mp4 92.01M
0130_Generics_at_Different_Levels.mp4 10.28M
0131_Represent_Generics_at_the_Lowest_Level.mp4 24.04M
0132_Typed_Object_Keys.mp4 4.99M
0133_Two_Approaches_for_Typing_Object_Keys.mp4 24.13M
0134_Make_a_Generic_Wrapper_for_a_Function.mp4 10.84M
0135_Constrain_a_Type_Argument_to_a_Function.mp4 30.12M
0136_Understand_Literal_Inference_in_Generics.mp4 28.85M
0137_Understand_Generic_Inference_When_Using_Objects_as_Arguments.mp4 26.82M
0138_Inferring_Literal_Types_from_any_Basic_Type.mp4 6.45M
0139_Accepting_Multiple_Literal_Types.mp4 7.44M
0140_Infer_the_Type_of_an_Array_Member.mp4 4.56M
0141_Constrain_to_the_Array_Member_Not_the_Array.mp4 6.90M
0142_Generics_in_a_Class_Names_Creator.mp4 7.80M
0143_Two_Approaches_to_Working_with_Class_Names.mp4 8.79M
0144_Generics_in_React_Query.mp4 23.98M
0145_Generics_with_Conditional_Types.mp4 3.98M
0146_Ensure_Runtime_Level_Type_Level_Safety_with_Conditional_Types.mp4 29.30M
0147_Fixing_Errors_in_Generic_Functions.mp4 4.82M
0148_Fixing_the_Not_Assignable_Error.mp4 8.70M
0149_Generic_Function_Currying.mp4 3.92M
0150_Fix_Type_Inference_in_Curried_Functions.mp4 22.49M
0151_Generic_Interfaces_with_Functions.mp4 21.67M
0152_Understanding_Generics_at_Different_Levels_of_Functions.mp4 39.37M
0153_Spotting_Useless_Generics.mp4 5.87M
0154_Refactoring_Functions_with_Unnecessary_Type_Arguments.mp4 10.56M
0155_Spotting_Missing_Generics.mp4 10.86M
0156_Improving_Type_Inference_with_Additional_Generics.mp4 21.62M
0157_How_tRPC_Handles_Inheritable_Generics.mp4 68.73M
0158_Refactoring_Generics_for_a_Cleaner_API.mp4 13.40M
0159_Create_a_Factory_Function_to_Apply_Type_Arguments_to_All_Child_Functions.mp4 17.86M
0160_The_Partial_Inference_Problem.mp4 21.82M
0161_A_Workaround_for_The_Lack_of_Partial_Inference.mp4 37.30M
0162_What_is_a_Function_Overload.mp4 2.47M
0163_Understanding_Function_Overloads.mp4 7.36M
0164_Function_Overloads_vs_Conditional_Types.mp4 4.39M
0165_Match_Return_Types_with_Function_Overloads.mp4 29.61M
0166_Debugging_Overloaded_Functions.mp4 11.84M
0167_Specifying_Types_for_an_Overloaded_Function.mp4 33.54M
0168_Function_Overloads_vs_Union_Types.mp4 5.23M
0169_When_to_Use_Overloads_and_Unions.mp4 16.27M
0170_Generics_in_Function_Overloads.mp4 5.20M
0171_Typing_Different_Function_Use_Cases.mp4 23.37M
0172_Solving_an_Inference_Mystery.mp4 8.05M
0173_The_Inference_Mystery_Solved.mp4 83.88M
0174_Use_Function_Overloads_to_Infer_Initial_Data.mp4 9.13M
0175_Split_Functions_Into_Two_Different_Call_Signatures.mp4 16.47M
0176_The_Instantiated_with_Subtype_Error.mp4 13.14M
0177_Handling_Default_Arguments_with_Function_Overloads.mp4 27.02M
0178_Make_An_Infinite_Scroll_Function_Generic_with_Correct_Type_Inference.mp4 12.28M
0179_Introduce_a_Type_Parameter_to_Ensure_Type_Consistency.mp4 55.87M
0180_Create_a_Function_with_a_Dynamic_Number_of_Arguments.mp4 10.97M
0181_Use_a_Tuple_to_Represent_a_Dynamic_Number_of_Arguments.mp4 18.90M
0182_Create_a_Pick_Function.mp4 8.80M
0183_Extracting_Object_Properties_with_Reduce_and_Generics.mp4 69.41M
0184_Create_a_Form_Validation_Library.mp4 21.28M
0185_Add_Strong_Typing_and_Proper_Error_Handling_to_a_Form_Validator.mp4 72.52M
0186_Improve_a_Fetch_Function_to_Handle_Missing_Type_Arguments.mp4 11.49M
0187_Modify_a_Generic_Type_Default_for_Improved_Error_Messages.mp4 19.47M
0188_Typing_a_Function_Composition_with_Overloads_and_Generics.mp4 18.65M
0189_Using_Overloads_and_Generics_to_Type_Function_Composition.mp4 49.60M
0190_Build_an_Internationalization_Library.mp4 23.33M
0191_Extract_Types_from_Strings_for_an_Internationalization_Library.mp4 89.91M
0192_Advanced_Workshop_Welcome.mp4 40.41M
0193_What_is_a_Branded_Type.mp4 23.41M
0194_Form_Validation_with_Branded_Types.mp4 15.07M
0195_Assigning_Branded_Types_to_Values.mp4 15.31M
0196_Using_Branded_Types_as_Entity_Ids.mp4 5.42M
0197_Add_Branded_Types_to_Functions_and_Models.mp4 22.34M
0198_Creating_Reusable_Validity_Checks_with_Branded_Types_and_Type_Helpers.mp4 10.16M
0199_Combine_Type_Helpers_with_Branded_Types.mp4 15.84M
0200_Creating_Validation_Boundaries_with_Branded_Types.mp4 17.37M
0201_Using_Branded_Types_to_Validate_Code_Logic.mp4 36.13M
0202_Using_Index_Signatures_with_Branded_Types.mp4 9.49M
0203_Indexing_an_Object_with_Branded_Types.mp4 18.56M
0204_TypeScript_s_Global_Scope.mp4 8.93M
0205_Add_a_Function_to_the_Global_Scope.mp4 46.58M
0206_Add_Functionality_to_Existing_Global_Interfaces.mp4 4.84M
0207_Use_Declaration_Merging_to_Add_Functionality_to_the_Global_Window.mp4 52.46M
0208_Add_Types_to_Properties_of_Global_Namespaced_Interfaces.mp4 7.77M
0209_Typing_process_env_in_the_NodeJS_Namespace.mp4 30.19M
0210_Colocating_Types_for_Global_Interfaces.mp4 16.16M
0211_Solving_the_Colocation_Problem_with_Globals.mp4 23.16M
0212_Filtering_with_Type_Predicates.mp4 5.62M
0213_Use_a_Type_Predicate_to_Filter_Types.mp4 25.21M
0214_Checking_Types_with_Assertion_Functions.mp4 9.27M
0215_Ensure_Valid_Types_with_an_Assertion_Function.mp4 23.26M
0216_Avoiding_TypeScript_s_Most_Confusing_Error.mp4 7.32M
0217_Declare_Assertion_Functions_Properly_to_Avoid_Confusing_Errors.mp4 5.31M
0218_Combining_Type_Predicates_with_Generics.mp4 15.69M
0219_Filtering_with_Type_Predicates_and_Generics.mp4 24.25M
0220_Combining_Brands_and_Type_Predicates.mp4 7.21M
0221_Checking_for_Validity_with_Brands_and_Type_Predicates.mp4 3.10M
0222_Combining_Brands_with_Assertion_Functions.mp4 3.99M
0223_Validate_Types_with_Brands_and_Assertions.mp4 9.29M
0224_Classes_as_Types_and_Values.mp4 6.90M
0225_Using_Classes_in_TypeScript.mp4 8.08M
0226_Dive_into_Classes_with_Type_Predicates.mp4 15.15M
0227_Simplifying_TypeScript_with_Type_Predicates.mp4 19.44M
0228_Assertion_Functions_and_Classes.mp4 9.80M
0229_Leverage_Assertion_Functions_for_Better_Inference_in_Classes.mp4 10.39M
0230_Class_Implementation_Following_the_Builder_Pattern.mp4 64.26M
0231_TRPC_s_Creator_on_the_Builder_Pattern.mp4 42.27M
0232_Create_a_Type_Safe_Map_with_the_Builder_Pattern.mp4 8.92M
0233_Getters_and_Setters_in_the_Builder_Pattern.mp4 17.54M
0234_Debugging_the_Builder_Pattern.mp4 5.08M
0235_Default_Generics_in_the_Builder_Pattern.mp4 20.12M
0236_Building_Chainable_Middleware_with_the_Builder_Pattern.mp4 32.50M
0237_The_Power_of_Generics_and_the_Builder_Pattern.mp4 60.35M
0238_Subclassing_in_Zod.mp4 75.73M
0239_Where_Do_External_Types_Come_From.mp4 75.45M
0240_Extract_Types_to_Extend_an_External_Library.mp4 6.62M
0241_Retrieve_Function_Parameters_from_an_External_Library.mp4 18.31M
0242_Navigating_Lodash_s_Type_Definitions.mp4 35.21M
0243_Finding_Proper_Type_Arguments_and_Generics_with_Lodash.mp4 10.25M
0244_Passing_Type_Arguments_with_Lodash.mp4 59.66M
0245_Navigating_Express_s_Type_Definitions.mp4 81.13M
0246_Add_Query_Params_to_an_Express_Request.mp4 10.33M
0247_Make_an_Express_Request_Function_Generic.mp4 34.54M
0248_Browsing_Zod_s_Types.mp4 28.14M
0249_Create_a_Runtime_and_Type_Safe_Function_with_Generics_and_Zod.mp4 6.52M
0250_Infer_Runtime_Arguments_from_a_Zod_Schema.mp4 40.38M
0251_Override_External_Library_Types.mp4 9.90M
0252_Create_a_Declarations_File_to_Override_Types.mp4 26.10M
0253_Identity_Functions_as_an_Alternative_to_the_as_const.mp4 6.58M
0254_Using_const_type_parameters_For_Better_Inference.mp4 9.93M
0255_Add_Constraints_to_an_Identity_Function.mp4 3.94M
0256_Constraining_and_Narrowing_an_Identity_Function.mp4 14.15M
0257_Specifying_Where_Inference_Should_Not_Happen.mp4 11.57M
0258_Fix_Inference_Issues_with_F_NoInfer.mp4 15.54M
0259_Find_the_Generic_Flow_of_an_Identity_Function.mp4 7.77M
0260_Avoid_Duplicate_Code_in_an_Identity_Function_with_Generics.mp4 21.54M
0261_Reverse_Mapped_Types.mp4 8.83M
0262_Inference_Inception_in_an_Identity_Function.mp4 17.33M
0263_Merge_Dynamic_Objects_with_Global_Objects.mp4 10.21M
0264_Add_Objects_to_the_Global_Scope_Dynamically.mp4 23.83M
0265_Narrowing_with_an_Array.mp4 10.57M
0266_Narrowing_with_Arrays_and_Generics.mp4 75.81M
0267_Create_a_Type_Safe_Request_Handler_with_Zod_and_Express.mp4 19.48M
0268_Type_Safe_Request_Handlers_with_Zod_and_Express.mp4 85.95M
0269_Building_a_Dynamic_Reducer.mp4 49.29M
0270_Dynamic_Reducer_with_Generic_Types.mp4 143.84M
0271_Custom_JSX_Elements.mp4 7.17M
0272_Adding_Custom_Elements_to_JSX_IntrinsicElements.mp4 61.30M
0273_Tejas_Kumar_Discusses_How_to_Build_Bulletproof_Apps_with_TypeScript.mp4 446.89M
0274_Adopting_TypeScript_at_Netflix_with_Shaundai_Person.mp4 386.58M
0275_Mark_Erikson_on_Avoiding_Breaking_Changes_and_Improving_Maintainability_with_TypeScript.mp4 336.90M
0276_The_TypeScript_Culture_at_Formidable_with_Kadi_Kraman.mp4 417.68M
0277_Colin_McDonnell_Talks_About_The_Design_Choices_Behind_Zod.mp4 334.88M
0278_TypeScript_s_History_and_Growth_with_Daniel_Rosenwasser.mp4 511.34M
0279_Priscila_Oliveira_on_Sentry_s_TypeScript_Migration.mp4 483.14M
0280_Gabriel_Vergnaud_on_Type_and_Value_Level_Mapping_in_TypeScript.mp4 209.75M
0281_Building_Familiarity_with_TypeScript_s_Syntax_and_Functionality_with_Orta_Therox.mp4 302.25M
0282_A_Look_at_tRPC_with_its_Creator_Alex_KATT_Johansson.mp4 205.38M
0283_Exploring_Generics_in_React_Query_with_Tanner_Linsley.mp4 294.38M