Изменения в новых версиях / TypeScript 4.1

// *** before: ***
type Getters<T> = {
    [K in keyof T]: () => T[K];
    // ключ остаётся тем же самым - "get" + имя поля не собрать
};

// *** in version 4.1: ***
type GettersRenamed<T> = {
    [K in keyof T as `get${Capitalize<string & K>}`]: () => T[K];
};
interface Person { name: string; age: number; }
type PersonGetters = GettersRenamed<Person>;
// { getName: () => string; getAge: () => number }