Typescript: Unterstützung der Konstruktoreigenschaft der ES6-Klasse

Erstellt am 21. März 2016  ·  3Kommentare  ·  Quelle: microsoft/TypeScript

TypeScript-Version:

1.7.5

Code

class Foo extends React.Component<any, any> {
 // ... some class definitions
}
Foo.defaultProps = {
  bar: 'baz'
}

Erwartetes Verhalten:

Kein Fehler.

Tatsächliches Verhalten:

TS2339: Die Eigenschaft 'defaultProps' ist für den Typ 'typeof Foo' nicht vorhanden.

Beschreibung

Hallo, ich möchte eine Reaktionsklasse mit Typoskript mit ES6-Klassen erstellen und bin auf den obigen Fehler gestoßen.

Es wäre fantastisch, wenn ich die Klasseneigenschaft wie oben anstelle des Klassenkörpers festlegen könnte. scheint Typoskript unterstützt es nicht?

Question

Hilfreichster Kommentar

Der Fehler ist, dass standardmäßig keine statische Eigenschaft defaultProps für Foo . Sie müssen dem Compiler also nur mitteilen, dass Sie eine solche Eigenschaft wünschen.

class Foo extends React.Component<any, any> {
    static defaultProps: any;
}

Foo.defaultProps = {
  bar: 'baz'
}

Wenn die Requisiten vom Typ P statt any wären, wären es im Allgemeinen class Foo extends React.Component<P, ... und static defaultProps: P;

Alle 3 Kommentare

Der Fehler ist, dass standardmäßig keine statische Eigenschaft defaultProps für Foo . Sie müssen dem Compiler also nur mitteilen, dass Sie eine solche Eigenschaft wünschen.

class Foo extends React.Component<any, any> {
    static defaultProps: any;
}

Foo.defaultProps = {
  bar: 'baz'
}

Wenn die Requisiten vom Typ P statt any wären, wären es im Allgemeinen class Foo extends React.Component<P, ... und static defaultProps: P;

Sie können das Zusammenführen von Modulen auch für etwas weniger Code verwenden:

class Foo { ... }
namespace Foo {
  export const defaultProps = {
    ...
  }
}

Vielen Dank für freundliche Antworten! : +1:

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

kyasbal-1994 picture kyasbal-1994  ·  3Kommentare

dlaberge picture dlaberge  ·  3Kommentare

seanzer picture seanzer  ·  3Kommentare

fwanicka picture fwanicka  ·  3Kommentare

bgrieder picture bgrieder  ·  3Kommentare