type O = {
key1: string
key2: string
}
type A = ["key1", "key2"]
Array<keyof O>
даст немного другой результат: Array<"key1" | "key2">
, в этом случае можно передать пустой массив, массив с любым количесвом значений равных "key1" или "key2", т.е. допускаются дубли.