Media is too big
VIEW IN TELEGRAM
8. Setup Test & Watch Script
Mike explains how to improve the development workflow by setting up a watch mode for both the build and test scripts. The concurrently package is installed and used to run both scripts in parallel.
#lesson
Mike explains how to improve the development workflow by setting up a watch mode for both the build and test scripts. The concurrently package is installed and used to run both scripts in parallel.
#lesson
Media is too big
VIEW IN TELEGRAM
9. API Reporting
Mike adds an API surface report and documentation to the project by installing the api-extractor and api-documenter packages. The API Extractor package generates API report in a markdown file and can adapt the report based on alpha, beta, and public release statuses.
#lesson
Mike adds an API surface report and documentation to the project by installing the api-extractor and api-documenter packages. The API Extractor package generates API report in a markdown file and can adapt the report based on alpha, beta, and public release statuses.
#lesson
Media is too big
VIEW IN TELEGRAM
10. API Documentation
Mike uses the api-documenter package to generate documentation for the library's APIs. JSDoc comments are used to flag methods based on their version availability, like alpha and beta. A code change is made to the API, and the API Extractor warning about the change is explained.
#lesson
Mike uses the api-documenter package to generate documentation for the library's APIs. JSDoc comments are used to flag methods based on their version availability, like alpha and beta. A code change is made to the API, and the API Extractor warning about the change is explained.
#lesson
Media is too big
VIEW IN TELEGRAM
11. tsconfig Strictness
Mike discusses various TypeScript compiler options and their implications, such as noImplicitAny, noImplicitThis, strictNullChecks, strictFunctionTypes, and more. Fixing TypeScript/ESLint errors in a test file by specifying the correct path for the declaration file is also demonstrated.
#lesson
Mike discusses various TypeScript compiler options and their implications, such as noImplicitAny, noImplicitThis, strictNullChecks, strictFunctionTypes, and more. Fixing TypeScript/ESLint errors in a test file by specifying the correct path for the declaration file is also demonstrated.
#lesson
Media is too big
VIEW IN TELEGRAM
12. TypeScript Migration Overview
Mike discusses converting a project to TypeScript and gradually improving the typing and linting. Making incremental passes and staying focused on specific tasks to avoid introducing bugs is encouraged. The steps include getting TypeScript into the build toolchain, renaming files to TS, getting rid of implicit any's, bringing in definitely-typed packages, creating interfaces for domain modeling, and working on Boolean expressions.
#lesson
Mike discusses converting a project to TypeScript and gradually improving the typing and linting. Making incremental passes and staying focused on specific tasks to avoid introducing bugs is encouraged. The steps include getting TypeScript into the build toolchain, renaming files to TS, getting rid of implicit any's, bringing in definitely-typed packages, creating interfaces for domain modeling, and working on Boolean expressions.
#lesson
Media is too big
VIEW IN TELEGRAM
13. App Setup & Type-Checking JavaScript
Mike begins the TypeScript refactor by verifying TypeScript is already installed as a development dependency and then making adjustments to the TS config file to enable type checking. Errors previously tolerated with the allowJS option are fixed. JSDoc comments are used as a temporary solution for components with children.
#lesson
Mike begins the TypeScript refactor by verifying TypeScript is already installed as a development dependency and then making adjustments to the TS config file to enable type checking. Errors previously tolerated with the allowJS option are fixed. JSDoc comments are used as a temporary solution for components with children.
#lesson
Media is too big
VIEW IN TELEGRAM
14. Renaming Files to TS
Mike renames JavaScript files to TypeScript files in a chat project. Before fixing and type issues, a git commit is made to recognize the renaming in the git history. Now that all files in the project are TypeScript files, JSDoc comments are ignored, and type information needs to be provided with TypeScript.
#lesson
Mike renames JavaScript files to TypeScript files in a chat project. Before fixing and type issues, a git commit is made to recognize the renaming in the git history. Now that all files in the project are TypeScript files, JSDoc comments are ignored, and type information needs to be provided with TypeScript.
#lesson
Media is too big
VIEW IN TELEGRAM
15. Forbidding Implicit any
Mike demonstrates the next step in the TypeScript conversion, which is disallowing implicit any types. Setting the noImplicitAny flag to true for an entire project can be problematic since there's a wide surface area for changes. Instead, creating a new tsconfig file in an individual subfolder and starting there can make the process more incremental.
#lesson
Mike demonstrates the next step in the TypeScript conversion, which is disallowing implicit any types. Setting the noImplicitAny flag to true for an entire project can be problematic since there's a wide surface area for changes. Instead, creating a new tsconfig file in an individual subfolder and starting there can make the process more incremental.
#lesson
Media is too big
VIEW IN TELEGRAM
16. DefinitelyTyped & Versioning
Mike explains that declaration files, denoted by the .d.ts extension, contain type information but no runnable code. The community-run DefinitelyTyped repository is toured, and students are encouraged to contribute to projects that need type information or bug fixes. Challenges with versioning are also discussed.
#lesson
Mike explains that declaration files, denoted by the .d.ts extension, contain type information but no runnable code. The community-run DefinitelyTyped repository is toured, and students are encouraged to contribute to projects that need type information or bug fixes. Challenges with versioning are also discussed.
#lesson
Media is too big
VIEW IN TELEGRAM
17. Type Acquisitions
Mike explains where TypeScript looks for type declarations, such as the top level, type roots, explicit module declarations, and custom type roots. Prioritization of file types is discussed, and the importance of publishing accurate declaration files for libraries is emphasised.
#lesson
Mike explains where TypeScript looks for type declarations, such as the top level, type roots, explicit module declarations, and custom type roots. Prioritization of file types is discussed, and the importance of publishing accurate declaration files for libraries is emphasised.
#lesson
Media is too big
VIEW IN TELEGRAM
18. Pure Type Information
Mike defines interfaces for important components of the Slack app, such as messages, channels, teams, and users. These interfaces are applied in various parts of the codebase, including React components and data functions.
#lesson
Mike defines interfaces for important components of the Slack app, such as messages, channels, teams, and users. These interfaces are applied in various parts of the codebase, including React components and data functions.
#lesson
Media is too big
VIEW IN TELEGRAM
19. Typing React Props
Mike demonstrates two different methods for adding types to React component props. The React.FC type is favored over using a custom interface because it would require less refactoring if any core React functionality changed in a future version.
#lesson
Mike demonstrates two different methods for adding types to React component props. The React.FC type is favored over using a custom interface because it would require less refactoring if any core React functionality changed in a future version.
#lesson
Media is too big
VIEW IN TELEGRAM
20. Local Type Overrides
Mike demonstrates how to patch imported types locally in the project. Type declaration files can be created to override the types of imported modules, which removes blocks and allows a team to continue to develop while the imported library is fixed.
#lesson
Mike demonstrates how to patch imported types locally in the project. Type declaration files can be created to override the types of imported modules, which removes blocks and allows a team to continue to develop while the imported library is fixed.
#lesson
Media is too big
VIEW IN TELEGRAM
21. null, undefined & boolean Operators
Mike applies ESLint rules and increases the strictness of the files in the utils folder. Similar to defining an additional tsconfig file, the new ESLint rules can be defined in the overrides object and the rules can be scoped to a specific directory.
#lesson
Mike applies ESLint rules and increases the strictness of the files in the utils folder. Similar to defining an additional tsconfig file, the new ESLint rules can be defined in the overrides object and the rules can be scoped to a specific directory.
#lesson
Media is too big
VIEW IN TELEGRAM
22. Types at Runtime
Mike discusses type checking at runtime and introduces the concept of type guards. Performing full type checking at runtime can be expensive and slow down an application. Instead, using type guards to perform type checking at runtime can add type safety to API responses or other places in the application like a data layer.
#lesson
Mike discusses type checking at runtime and introduces the concept of type guards. Performing full type checking at runtime can be expensive and slow down an application. Instead, using type guards to perform type checking at runtime can add type safety to API responses or other places in the application like a data layer.
#lesson
Media is too big
VIEW IN TELEGRAM
23. Local Packages
Mike imports the chat-stdlib library project into the chat project using yarn workspaces. This simulates how a monorepo would be architected because it helps enable encapsulation and manage complexity. The library is added as a dependency in the project's package.json file and imports are refactored.
#lesson
Mike imports the chat-stdlib library project into the chat project using yarn workspaces. This simulates how a monorepo would be architected because it helps enable encapsulation and manage complexity. The library is added as a dependency in the project's package.json file and imports are refactored.
#lesson
Media is too big
VIEW IN TELEGRAM
24. Yarn Focus
Mike demonstrates the focus feature of Yarn workspaces, which removes unnecessary dependencies from the node modules folder, leaving only the dependencies needed for a specific part of the project. This allows for a more focused and efficient development process when working on different modules or components of a large-scale project.
#lesson
Mike demonstrates the focus feature of Yarn workspaces, which removes unnecessary dependencies from the node modules folder, leaving only the dependencies needed for a specific part of the project. This allows for a more focused and efficient development process when working on different modules or components of a large-scale project.
#lesson
Media is too big
VIEW IN TELEGRAM
25. Tests for Types
Mike compares positive and negative test cases for types in TypeScript. While positive test cases are easy to write, negative test cases are important to catch mistakes that should not be compilable. Two tools for writing negative test cases are introduced: DTS Lint and TSD.
#lesson
Mike compares positive and negative test cases for types in TypeScript. While positive test cases are easy to write, negative test cases are important to catch mistakes that should not be compilable. Two tools for writing negative test cases are introduced: DTS Lint and TSD.
#lesson
This media is not supported in your browser
VIEW IN TELEGRAM
26. Wrapping Up
Mike concludes the course with a summary of the objectives and the hope that this course gives engineers the tools to help manage complexity in large-scale applications.
#lesson
Mike concludes the course with a summary of the objectives and the hope that this course gives engineers the tools to help manage complexity in large-scale applications.
#lesson
Title: Intermediate TypeScript, v2
Description: Dive deeper into TypeScript's powerful features, including handling of extreme types, nullish values, ES modules, and advanced generics. Learn about namespaces, classes, top and bottom types, and practical use of conditional and mapped types.
Link: https://frontendmasters.com/courses/intermediate-typescript-v2/
Time: 5 hours, 3 minutes
Lessons: 33 / 33
Tags: #course #frontendmasters #720p
Description: Dive deeper into TypeScript's powerful features, including handling of extreme types, nullish values, ES modules, and advanced generics. Learn about namespaces, classes, top and bottom types, and practical use of conditional and mapped types.
Link: https://frontendmasters.com/courses/intermediate-typescript-v2/
Time: 5 hours, 3 minutes
Lessons: 33 / 33
Tags: #course #frontendmasters #720p
Frontendmasters
Intermediate TypeScript: Advanced Techniques for Types, Modules, and Generics
Dive into TypeScript's powerful features, including complex types, nullish values, ES modules, and advanced generics. Learn about namespaces, classes, top and bottom types, and conditional and mapped types.
Media is too big
VIEW IN TELEGRAM
1. Introduction
Mike North explains the goals of the course and course prerequisites which include having experience with modern JavaScript and basic knowledge of generics and type parameters. Instructions for setting up the workshop project is also covered in this segment.
- https://www.typescript-training.com/course/intermediate-v2
#lesson
Mike North explains the goals of the course and course prerequisites which include having experience with modern JavaScript and basic knowledge of generics and type parameters. Instructions for setting up the workshop project is also covered in this segment.
- https://www.typescript-training.com/course/intermediate-v2
#lesson