Cómo eliminar propiedades a través del tipo mapeado en TypeScript

Aqui esta el codigo

class A {
    x = 0;
    y = 0;
    visible = false;
    render() {

    }
}

type RemoveProperties<T> = {
    readonly [P in keyof T]: T[P] extends Function ? T[P] : never//;
};


var a = new A() as RemoveProperties<A>
a.visible // never
a.render() // ok!

Quiero eliminar las propiedades "visibles / x / y" a través de RemoveProperties, pero solo puedo reemplazarlo por nunca

Respuestas a la pregunta(1)

Su respuesta a la pregunta