MST

星途 面试题库

面试题:TypeScript中使用strictNullChecks对null和undefined处理的深入理解

在开启`strictNullChecks`的TypeScript项目中,有一个对象`const obj = { prop: 'initial value' };`,你想写一个函数,该函数接收这个对象作为参数,并且有可能会将对象的`prop`属性设为`null`。请给出函数的正确类型定义,并解释为什么在`strictNullChecks`模式下这样定义是必要的。
32.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
function setPropToNull(obj: { prop: string | null }): void {
    obj.prop = null;
}

strictNullChecks模式下,TypeScript会严格检查类型中的nullundefined。原始对象objprop属性类型为string,但函数需要将其设为null,所以函数参数类型中prop属性的类型必须声明为string | null,这样才能在函数内部将prop赋值为null。否则,TypeScript会报错,因为它不允许将null赋值给仅声明为string类型的属性。