当状态属性具有不同类型时,如何使用类型注释设置状态?例如,在这里我想编写两种方法-一种设置字符串,另一种设置数字:
import React, {Component} from 'react'
interface State {
a: string
b: string
c: number
d: number
}
class TestComponent extends Component<any, State> {
state:State = {
a: 'test',
b: 'test',
c: 1,
d: 1
}
setStringProperty = (key:keyof State, value:string) => {
this.setState({
[key]:value
})
}
render () {
return <div>test</div>
}
}
export default TestComponent
但是我遇到以下错误:
错误:(19,19)TS2345:类型'{[x:string]:string; }'是 不能分配给'State |类型的参数((prevState: 只读,道具:只读)=>状态|选择| null)|选择|空值'。 类型'{[x:string]:string; }'缺少以下属性 来自“选择”类型:a,b,c,d
虽然这很有意义,但我看不到如何编写用于设置不同状态属性(相同类型或不同类型)的通用方法?