- pages
- actions
- types
- components
- hooks
import PropTypes from 'prop-types'
function MyComp({ str, onClick, obj }) {
return <div onClick={ onClick }>{ str }</div>
}
MyComp.propTypes = {
str:PropTypes.string,
onClick:PropTypes.func.isRequired
onj:PropTypes.shape({
name:PropTypes.string,
age:PropTypes.number,
gender:PropTypes.oneOf(['M', 'F']),
birthdate:PropTypes.instanceOf(Date)
})
}
function onClickHandle() {
}
<MyComp
str="Hi"
onClick={ onClickHandle }
obj={ { name: "John" } }
></MyComp>
"scripts": {
"flow": "flow"
},
import * as React from 'react'
type MyCompProps = {
name:string,
age?:Number,
children:React.Node
}
create-react-app hogehoge --typescript
interface MyCompInterface {
name: string
}
type MyCompType = {
name: string,
gender: "M" | "F",
isMarried?: boolean,
[key: string]: any
}
function MyComp({ name, gender, whatever }: MyCompType) {
return <div>{ name } : { gender } : { whatever }</div>
}
<MyComp
name="John"
gender="M"
whatever="true"
/>