コメントの回答として、JavaScriptでできることはすべてTypeScriptでも有効です。
しかし、私はあなたが設定したコンパイラオプションに応じて、TypeScriptコンパイラからエラーが発生していると思います。あなたのコンポーネントを想定し
はこのようなものになります。
interface ComponentProps { }
interface ComponentState {
name: string
address: string
}
class MyComponent extends React.Component<ComponentProps, ComponentState> {
handleChange(e) {
e.preventDefault()
this.setState({ [e.target.name]: e.target.value })
}
}
を、私はこのエラーを取得しています:
== External: (30,19): error TS2345: Argument of type '{ [x: number]: any; }' is not assignable to parameter of type 'ComponentState'.
== External: Property 'name' is missing in type '{ [x: number]: any; }'.
そして(私が使用したい)noImplicitAny
コンパイラオプションを使用して、この追加エラー:
== External: (28,16): error TS7006: Parameter 'e' implicitly has an 'any' type.
コードが正しいことを確認した場合は、沈黙が明示的にhandleChange
のためのパラメータとsetState
handleChange(e: any) {
e.preventDefault()
this.setState({ [e.target.name]: e.target.value } as ComponentState)
}
の引数をキャストすることにより、これらのエラーは、なぜそれが可能ではないでしょうか?何かエラーがありますか?何が問題なのですか? –
JavaScriptでできることは何でも、TypeScriptで行うことができます。 – vutran