«Любой» поддерживает ковариацию и контравариантность. Это потому, что «любой» является супертипом и подтипом всех типов.
Следовательно, это работает,
let genericVariable: any = 20;
let numericVariable: number;
genericVariable = numericVariable; // No error
numericVariable = genericVariable; // No error
смешанная поддерживает только ковариации. Это супер-тип и не подтип всех типов.
let genericVariable: mixed = 20;
let numericVariable: number;
numericVariable = genericVariable; // This shows error
genericVariable = numericVariable; // This works fine.
ковариация - Generic типа (родитель) может быть заменена специальным типом (ребенок)
контравариации - Специальный тип (ребенок) может быть замещен родовым типом (родительский). Это проблема, если она не защищена определенными соглашениями.
Ссылка на документацию не работает, и [текущие документы на 'mixed'] (https://flow.org/en/docs/types/mixed/) не имеют такого текста. Это то, что выглядела эта страница документов, когда она существовала: https://web.archive.org/web/20150513033813/http://flowtype.org/docs/base-types.html –