The TypeScript's docs comes with Compiler Options, where the --strictFunctionTypes is defined with its description. Unfortunately, can't get what is bivariant parameter. I tried to understand https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-function-parameters-bivariant as well.
            Asked
            
        
        
            Active
            
        
            Viewed 1,662 times
        
    9
            
            
         
    
    
        Daniel Danielecki
        
- 8,508
- 6
- 68
- 94
1 Answers
7
            A "bivariant" parameter is one that is both covariant and contravariant.
The TypeScript 2.6 release notes describe the --strictFunctionTypes compiler option well, since that's the first release that supported it. 
Under --strictFunctionTypes function type parameter positions are checked contravariantly instead of bivariantly. For some background on what variance means for function types check out What are covariance and contravariance?.
This article linked in that quote describes the difference between covariance and contravariance: https://www.stephanboyer.com/post/132/what-are-covariance-and-contravariance
 
    
    
        Austin Fahsl
        
- 378
- 1
- 4
- 
                    2The last links with this 2 sentences "Suppose I need a Listand you pass me a List – Daniel Danielecki Aug 24 '19 at 10:53. Since I think I have a List , I might try to insert a Cat into it. Now your List has a Cat in it! The type system should not allow this." describes it quite alright.