Typescript: ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° свойства конструктора класса ES6

Π‘ΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΉ Π½Π° 21 ΠΌΠ°Ρ€. 2016  Β·  3ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ  Β·  Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: microsoft/TypeScript

ВСрсия TypeScript:

1.7.5

Код

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

ОТидаСмоС повСдСниС:

НСт ошибки.

ЀактичСскоС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅:

TS2339: свойство defaultProps Π½Π΅ сущСствуСт для Ρ‚ΠΈΠΏΠ° typeof Foo.

ОписаниС

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, я Ρ…ΠΎΡ‚Π΅Π» Π±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ класс Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΉ тСкст с классами ES6 , ΠΈ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ» ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ‹ΡˆΠ΅.

Π‘Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Ссли Π±Ρ‹ я ΠΌΠΎΠ³ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойство класса, ΠΊΠ°ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π²Ρ‹ΡˆΠ΅, вмСсто Ρ‚Π΅Π»Π° класса. каТСтся ΠΌΠ°ΡˆΠΈΠ½ΠΎΠΏΠΈΡΠ½Ρ‹ΠΉ тСкст Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚?

Π‘Π°ΠΌΡ‹ΠΉ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Ошибка Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для defaultProps статичСского свойства Foo . ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ свойство.

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

Foo.defaultProps = {
  bar: 'baz'
}

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Ссли Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Π±Ρ‹Π» ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ° P вмСсто any , Ρ‚ΠΎ это Π±Ρ‹Π»ΠΈ Π±Ρ‹ class Foo extends React.Component<P, ... ΠΈ static defaultProps: P;

ВсС 3 ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Ошибка Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для defaultProps статичСского свойства Foo . ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ компилятору, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ свойство.

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

Foo.defaultProps = {
  bar: 'baz'
}

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, Ссли Ρ€Π΅ΠΊΠ²ΠΈΠ·ΠΈΡ‚ Π±Ρ‹Π» ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ Ρ‚ΠΈΠΏΠ° P вмСсто any , Ρ‚ΠΎ это Π±Ρ‹Π»ΠΈ Π±Ρ‹ class Foo extends React.Component<P, ... ΠΈ static defaultProps: P;

Π’Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ слияниС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ для Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСньшСго количСства ΠΊΠΎΠ΄Π°:

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

Π‘ΠΎΠ»ΡŒΡˆΠΎΠ΅ спасибо Π·Π° Π΄ΠΎΠ±Ρ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‚Ρ‹! : +1:

Π‘Ρ‹Π»Π° Π»ΠΈ эта страница ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ?
0 / 5 - 0 Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³ΠΈ