typescript 中刪除對象屬性的方法有:使用 delete 運算符,刪除指定的 propertyname使用 Object.defineproperty() 設置 propertyname 的 configurable 屬性為 false,再使用 delete 運算符刪除
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(),并設置屬性的 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() 函數(如果使用庫)。