{ children: string }) {
                  
                  
                    return a;
                  
                  
                  }
                  
                  
                  foo({
                  
                  
                    children: '',
                  
                  
                    s: 1,
                  
                  
                  })
                  
                  
                  // Object literal may only specify known properties, and 's' does not exist in type '{ children: string; }'.
                  
                  
                  В юнионе он же тоже выбирает литеральный тип или нет?
                  
                  
                
Я посмотрю дома, как за компьютер сяду, возможно я чего-то не понимаю. Если что, в личку отпишусь
начиная с TS 2.6 в функциях проверка аргументов осуществляется контравариантно (до этого - бивариантно). То есть мы можем принимать более специфичный тип как аргумент, т.к. он реализует все родительские поля В случае, если в функцию передается callback в качестве аргумента, его (коллбека) аргументы также проверются контравариантно. А выходное значение ковариантно playground: http://bit.ly/2KETb3V article: http://bit.ly/2SnqoDN docs: http://bit.ly/2Rk6Box
Обсуждают сегодня