Versão TypeScript:
1.7.5
Código
class Foo extends React.Component<any, any> {
// ... some class definitions
}
Foo.defaultProps = {
bar: 'baz'
}
Comportamento esperado:
Sem erro.
Comportamento real:
TS2339: A propriedade 'defaultProps' não existe no tipo 'typeof Foo'.
Olá, gostaria de criar a classe react usando o texto digitado com as
Seria incrível se eu pudesse definir a propriedade da classe como acima, em vez do corpo da classe. parece datilografado não suporta isso?
O erro é que, por padrão, não há propriedade estática defaultProps
em Foo
. Portanto, você só precisa dizer ao compilador que deseja essa propriedade.
class Foo extends React.Component<any, any> {
static defaultProps: any;
}
Foo.defaultProps = {
bar: 'baz'
}
Em geral, se os adereços eram de algum tipo P
vez de any
, então seriam class Foo extends React.Component<P, ...
e static defaultProps: P;
Você também pode usar a fusão de módulos para um código um pouco menor:
class Foo { ... }
namespace Foo {
export const defaultProps = {
...
}
}
Muito obrigado pelas respostas gentis! : +1:
Comentários muito úteis
O erro é que, por padrão, não há propriedade estática
defaultProps
emFoo
. Portanto, você só precisa dizer ao compilador que deseja essa propriedade.Em geral, se os adereços eram de algum tipo
P
vez deany
, então seriamclass Foo extends React.Component<P, ...
estatic defaultProps: P;