Hello! 欢迎来到小浪云!


typescript如何删除对象属性


avatar
小浪云 2024-12-01 33

typescript 中删除对象属性的方法有:使用 delete 运算符,删除指定的 propertyname使用 Object.defineproperty() 设置 propertyname 的 configurable 属性为 false,再使用 delete 运算符删除

typescript如何删除对象属性

typescript 中删除对象属性

TypeScript 中删除对象属性的方式如下:

使用 delete 运算符

使用 delete 运算符可以从对象中删除指定的属性。语法如下:

delete object[propertyName];

其中:

  • object 是要从中删除属性的对象。
  • propertyName 是要删除的属性的名称(字符串)。

示例:

const person = { name: "John Doe", age: 30 };  // 删除 age 属性 delete person.age;  console.log(person); // 输出:{ name: "John Doe" }

使用 Object.defineProperty()

另一种删除对象属性的方法是使用 Object.defineProperty(),并设置属性的 configurable 属性为 false。语法如下:

Object.defineProperty(object, propertyName, {   configurable: false, });

之后,该属性将不可再配置,包括无法被删除。此方法通常与 delete 运算符结合使用,以确保属性确实被删除。

示例:

const person = { name: "John Doe", age: 30 };  Object.defineProperty(person, "age", {   configurable: false, });  delete person.age;  console.log(person); // 输出:{ name: "John Doe" }

注意:

  • 使用 delete 运算符不会影响对象本身的类型。这意味着即使删除了属性,对象的类型仍然包含该属性。
  • 删除属性后,该属性的值将变为 undefined
  • 如果要完全从对象中删除一个属性并更新其类型,可以考虑使用 Pick 实用类型或 omit() 函数(如果使用库)。

相关阅读