TypeScript Angular 项目:对类中的属性使用 undefined 或 null?



>我有一个 Angular 6 项目,我的问题是在模型类上定义可为空属性的最佳方法是什么?

选项 1:使用?运算符

export class ProductModel {
public name?: string;
}

选项 2:将属性定义为字符串null

export class ProductModel {
public name: string | null;
}

请注意,我已经在tsconfig.json中设置了"strictNullChecks": true

也许这只是一种偏好,但如果有人可以帮助我提供一些背景提示和技巧或参考文章?

启用strictNullChecksname?: string;名称的类型为string | undefined

问题中的两个示例不仅语法略有不同,而且会产生不同的结果:

type WithOptional = {
name?: string;
}
type WithNullable = {
name: string | null;
}
const withOptional: WithOptional = {}; // no error: name is optional 
withOptional.name = null; // error: null is not assignable to string | undefined
const withNullable: WithNullable = {}; // error: name is missing
withNullable.name = undefined // error: undefined is not assingable to string | null

如果希望名称既可选又可为空,则可以将其定义为name?: string | null;

相关内容

  • 没有找到相关文章

最新更新