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.
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?
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:
Hilfreichster Kommentar
Der Fehler ist, dass standardmäßig keine statische Eigenschaft
defaultProps
fürFoo
. Sie müssen dem Compiler also nur mitteilen, dass Sie eine solche Eigenschaft wünschen.Wenn die Requisiten vom Typ
P
stattany
wären, wären es im Allgemeinenclass Foo extends React.Component<P, ...
undstatic defaultProps: P;