typer - Hvordan få TypeScript generisk begrensning til å gjelde for en funksjonsdefinisjon?


Jeg har følgende Preact/React-komponent:

export interface ListItem {
  disabled?: boolean;
}


export interface MyCompProps<T extends ListItem> {
  value: T;
}


export function MyComp<T>(props: MyCompProps<T>) {

  const { value } = props;

  // ERROR - Property 'disabled' does not exist on type 'T'.
  value.disabled;

  return (
    <div>
      {value.disabled ? 'True' : 'False'}
    </div>
  );
}

Siden T oppfyller kravene for MyCompProps<T>, burde ikke value av typen T inkludere et felt med navnet disabled? Også, hvis jeg endrer følgende kode, fungerer det:

export function MyComp<T extends ListItem>(props: MyCompProps<T>) { return (/* ... */); }

Men å gjøre dette undergraver poenget med å erklære begrensning på grensesnittnivå?