TypeScript Version:
1.7.5
Kode
class Foo extends React.Component<any, any> {
// ... some class definitions
}
Foo.defaultProps = {
bar: 'baz'
}
Perilaku yang diharapkan:
Tidak ada kesalahan.
Perilaku sebenarnya:
TS2339: Properti 'defaultProps' tidak ada pada tipe 'typeof Foo'.
Hai, Saya ingin membuat kelas react menggunakan skrip tipe dengan
Alangkah baiknya jika saya dapat mengatur properti kelas seperti di atas daripada badan kelas. Sepertinya naskah ketikan tidak mendukungnya?
Kesalahannya adalah secara default tidak ada properti statis defaultProps
pada Foo
. Jadi, Anda hanya perlu memberi tahu kompiler bahwa Anda menginginkan properti seperti itu.
class Foo extends React.Component<any, any> {
static defaultProps: any;
}
Foo.defaultProps = {
bar: 'baz'
}
Secara umum, jika props adalah dari beberapa tipe P
bukan any
, maka itu akan menjadi class Foo extends React.Component<P, ...
dan static defaultProps: P;
Anda juga dapat menggunakan penggabungan modul untuk kode yang sedikit lebih sedikit:
class Foo { ... }
namespace Foo {
export const defaultProps = {
...
}
}
Terima kasih banyak atas jawaban yang baik! : +1:
Komentar yang paling membantu
Kesalahannya adalah secara default tidak ada properti statis
defaultProps
padaFoo
. Jadi, Anda hanya perlu memberi tahu kompiler bahwa Anda menginginkan properti seperti itu.Secara umum, jika props adalah dari beberapa tipe
P
bukanany
, maka itu akan menjadiclass Foo extends React.Component<P, ...
danstatic defaultProps: P;