Version TypeScript:
1.7.5
Code
class Foo extends React.Component<any, any> {
// ... some class definitions
}
Foo.defaultProps = {
bar: 'baz'
}
Comportement prévisible:
Pas d'erreur.
Comportement réel:
TS2339: La propriété 'defaultProps' n'existe pas sur le type 'typeof Foo'.
Salut, je voudrais créer une classe de réaction en utilisant du typographie avec des j'ai rencontré l'erreur ci-dessus.
Ce serait génial si je pouvais définir la propriété de classe comme ci-dessus au lieu du corps de la classe. semble dactylographié ne le prend pas en charge?
L'erreur est que, par défaut, il n'y a pas defaultProps
propriété statique Foo
. Il vous suffit donc de dire au compilateur que vous souhaitez une telle propriété.
class Foo extends React.Component<any, any> {
static defaultProps: any;
}
Foo.defaultProps = {
bar: 'baz'
}
En général, si les accessoires étaient d'un certain type P
au lieu de any
, alors ce serait class Foo extends React.Component<P, ...
et static defaultProps: P;
Vous pouvez également utiliser la fusion de modules pour un peu moins de code:
class Foo { ... }
namespace Foo {
export const defaultProps = {
...
}
}
Merci beaucoup pour vos aimables réponses! : +1:
Commentaire le plus utile
L'erreur est que, par défaut, il n'y a pas
defaultProps
propriété statiqueFoo
. Il vous suffit donc de dire au compilateur que vous souhaitez une telle propriété.En général, si les accessoires étaient d'un certain type
P
au lieu deany
, alors ce seraitclass Foo extends React.Component<P, ...
etstatic defaultProps: P;