typescript 中刪除對(duì)象屬性的方法有:使用 delete 運(yùn)算符,刪除指定的 propertyname使用 Object.defineproperty() 設(shè)置 propertyname 的 configurable 屬性為 false,再使用 delete 運(yùn)算符刪除
typescript 中刪除對(duì)象屬性
TypeScript 中刪除對(duì)象屬性的方式如下:
使用 delete 運(yùn)算符可以從對(duì)象中刪除指定的屬性。語法如下:
delete object[propertyName];
其中:
- object 是要從中刪除屬性的對(duì)象。
- propertyName 是要?jiǎng)h除的屬性的名稱(字符串)。
示例:
const person = { name: "John Doe", age: 30 }; // 刪除 age 屬性 delete person.age; console.log(person); // 輸出:{ name: "John Doe" }
另一種刪除對(duì)象屬性的方法是使用 Object.defineProperty(),并設(shè)置屬性的 configurable 屬性為 false。語法如下:
Object.defineProperty(object, propertyName, { configurable: false, });
之后,該屬性將不可再配置,包括無法被刪除。此方法通常與 delete 運(yùn)算符結(jié)合使用,以確保屬性確實(shí)被刪除。
示例:
const person = { name: "John Doe", age: 30 }; Object.defineProperty(person, "age", { configurable: false, }); delete person.age; console.log(person); // 輸出:{ name: "John Doe" }
注意:
- 使用 delete 運(yùn)算符不會(huì)影響對(duì)象本身的類型。這意味著即使刪除了屬性,對(duì)象的類型仍然包含該屬性。
- 刪除屬性后,該屬性的值將變?yōu)?undefined。
- 如果要完全從對(duì)象中刪除一個(gè)屬性并更新其類型,可以考慮使用 Pick
實(shí)用類型或 omit() 函數(shù)(如果使用庫)。