什么是双变量参数?~打字稿

Dan*_*cki 8 compiler-specific typescript

TypeScript 的文档随附Compiler Options,其中--strictFunctionTypes定义了其描述。不幸的是,无法获得什么是bivariant parameter。我也试图了解https://github.com/Microsoft/TypeScript/wiki/FAQ#why-are-function-parameters-bivariant

小智 5

“双变”参数是一个既协变又逆变的参数。

打字稿2.6发行说明描述了--strictFunctionTypes编译器选项好,因为这是支持它的第一个版本。

在 --strictFunctionTypes 下,函数类型参数位置被逆变而不是双变量检查。有关函数类型的方差意味着什么的一些背景知识,请查看协方差和逆变是什么?。

该引用中链接的这篇文章描述了协方差和逆变之间的区别:https : //www.stephanboyer.com/post/132/what-are-covariance-and-contravariance

  • 最后链接这两个句子“假设我需要一个列表<动物>,你给我一个列表<狗>。因为我认为我有一个列表<动物>,我可能会尝试在其中插入一个猫。现在你的列表<Dog> 里面有一只 Cat!类型系统不应该允许这样做。” 描述得还不错。 (2认同)