typeof можно применять только к тем сущностям, которые имеют value-контекст. А тип, наоборот, можно сконструировать из тех сущностей, которые имеют type-контекст. Полагаю, Vasya и Petya —это енумы или классы (сущности, которые в TypeScript имеют и type-, и value-контексты). Но в таком случае тип type1 при объявлении потерял все value-контексты своих составляющих, и преобразовать его в в type2 не получится.
Но можно сделать так:
const type1 = { // используем value-контексты Васи и Пети
Vasya,
Petya,
}
type type2 = (typeof type1)[keyof typeof type1] // выводится в typeof Vasya | typeof Petya