Concept Flow - Covariance and contravariance
Start with types
Check assignment compatibility
Covariance: output types compatible?
Yes→Allow assignment
Error
Contravariance: input types compatible?
Yes→Allow assignment
No
Error
This flow shows how TypeScript checks if one type can be assigned to another by comparing output types (covariance) and input types (contravariance).