https://www.typescriptlang.org/play/?#code/MYGwhgzhAECCA8AVaBTAHgFxQOwCYwCUVgB7AJ13ggzIEtsBzAGmgFdsBrbEgd2wD5+0AN4AoaNGpgsAfgBc0RAG5xklBgDKGaSmgBeaAAoADmACeIEmFwKACmDIZaYEEn4BKfUOEBfUX9FQSBgAIVRMHHw4eGFoMAVsVgBbACMUMh9vVSksfREJPwkSbABhEFpgDjyMAAtaCAA6CHUtHUNYn3d-UR7RIA
class A<T extends Record<string, unknown>> {
state?: T;
}
class B extends A<{ a: number}> {
state = { /** cannot autocomplete */ }
}