如何为字段设置空值或等效值?

时间:2019-04-14 11:35:31

标签: reactjs typescript

我的组件状态为:

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吗?

1 个答案:

答案 0 :(得分:1)

以下两个在打字稿中是等效的:

person?: Person;
person: Person | undefined;

因此,如果要“取消设置”值,则必须分配undefined。 否则,如果您确实要使用null,仍然可以

person: Person | null;