So schließen Sie einen Schlüssel von einer Schnittstelle in Typoskript

In Typoskript, können Sie kombinieren zwei interface-Typen, wie dieser

interface Foo {
    var1: string
}

interface Bar {
    var2: string
}

type Combined = Foo & Bar

Anstelle der Kombination von Tasten, ausschließen will ich die Schlüssel von einer Schnittstelle zur anderen. Gibt es trotzdem, Sie tun es in TypeScript?

Der Grund ist, ich habe eine HOC, die verwaltet, ein property-Wert für andere gewickelt Komponente wie folgt

export default function valueHOC<P> (
  Comp: React.ComponentClass<P> | React.StatelessComponent<P>
): React.ComponentClass<P> {
  return class WrappedComponent extends React.Component<P, State> {
    render () {
      return (
        <Comp
          {...this.props}
          value={this.state.value}
        />
      )
    }
}

Mit, dass ich schreiben kann,

const ValuedComponent = valueHOC(MyComponent)

dann

<ValuedComponent />

aber das problem ist, dass die zurückgegebene component type auch über die Requisiten, die Art von Komponente, so Typoskript Klagen und bitten mich um die value prop. Als Ergebnis, ich werde zu schreiben, so etwas wie

<ValuedComponent value="foo" />

Denen der Wert wird nicht verwendet, sowieso. Was ich hier will ist die Rückkehr einer Schnittstelle, ohne spezifische Tasten, ich will etwas davon haben

React.ComponentClass<P - {value: string}>

Dann die value wird nicht erforderlich sein, in der Komponente zurückgegeben. Ist es möglich, in Maschinenschrift, für jetzt?

  • Sie können überprüfen Pick<T, K keyof T>. Aber Sie können nicht wählen Sie die Dinge dynamisch.
InformationsquelleAutor Fang-Pen Lin | 2017-07-08
Schreibe einen Kommentar