type PropertyNames = { [K in keyof T]: T[K] extends Function ? never : K; }[keyof T]; type ClassProperties = { [P in PropertyNames]: T[P]; }; export default ClassProperties;