我的组件状态为:
interface Person {
name: string;
surname: string;
}
interface CompState{
//...fields ...
person?: Person;
}
render() {
if(this.state.person){
const comp = <div>{this.person.name + this.person.surname}</div>
}
...
}
在我的一个处理程序中,我想“空白化”渲染的组件,所以我只需这样做:
newState.person = null; //Type 'null' is not assignable to type Person | undefined
我在做什么错?在打字稿中不可能将变量重新设置为null吗?
答案 0 :(得分:1)
以下两个在打字稿中是等效的:
person?: Person;
person: Person | undefined;
因此,如果要“取消设置”值,则必须分配undefined
。
否则,如果您确实要使用null
,仍然可以
person: Person | null;