если подумать, то это же норм, что мы передаем узкий тип в более широкий, вот если бы было наоборот, то была бы ошибка, он не не понимал возможные значения, а так он должен понимать, ведь мы передаем более узкий, значит все возможные значения он должен понимать