Typescript: Suporte da propriedade do construtor da classe ES6

Criado em 21 mar. 2016  ·  3Comentários  ·  Fonte: microsoft/TypeScript

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'.

Descrição

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?

Question

Comentários muito úteis

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;

Todos 3 comentários

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:

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

blendsdk picture blendsdk  ·  3Comentários

remojansen picture remojansen  ·  3Comentários

DanielRosenwasser picture DanielRosenwasser  ·  3Comentários

manekinekko picture manekinekko  ·  3Comentários

wmaurer picture wmaurer  ·  3Comentários