const name: string = 'Tom'
const age: number = 20
const isMale: boolean = false
type Gender = 'male' | 'female'
interface Zhuxi {
name: string
gender: Gender
}
interface Person {
env: 'home' | 'outside',
clothing?: 'T-shirt'
}
<input onChange={(e: FormEvent<HTMLInputElement>) => {
// Error
// Property 'value' does not exist on type 'EventTarget'
const v = e.target.value
}} />
// antd 的 checkbox
<Checkbox onChange={e => {
// Error
// cannot read property 'value' of undefined
const v = e.currentTarget.value
}} />
interface Props {
name?: string
}
class Com extends Component<Props> {
static defaultProps = {
name: '无名氏'
}
render() {
// [ts] name may be undefined
this.props.name
}
}
const { name = 'Tom' } = this.props
@Form.create()
class Com extends Component<Props & FormProps> {
render() {
this.props.form...
}
}
export default Com as React.ComponentClass<Props>
class Com extends Component<Props & FormProps> {
render() {
this.props.form...
}
}
export default Form.create<Props>()(Com)
/**
* @type {string}
*/
const name = 'Tom'
相当于:
const name: string = 'Tom'
/**
* @typedef {Object} Person
* @property {string} name
* @property {'male' | 'female'} gender
*/
/**
* @type {Person}
*/
const Tom = {name: '', gender: 'male'}
相当于
cconst Tom: Person = {...}