The Extract type in TypeScript takes two types: a type to extract and a union type. It checks each member of the union and keeps only those assignable to the second type. For example, given Fruit as "apple" | "banana" | "orange" and Extract<Fruit, "orange" | "lemon">, it checks each Fruit member. "apple" and "banana" are not assignable to "orange" | "lemon", so they are excluded. "orange" is assignable, so it is included. The final Extract type is "orange". This process is shown step-by-step in the execution table and variable tracker. Common confusions include why some members are excluded and what happens if no members match. Extract is useful to filter union types based on assignability.