打字稿:如何从索引签名中删除密钥?

Typescript: How to remove key from index signature?

在我基于 Angular 的 Web 应用程序中,我们有时需要一种类型来保存不同语言的各种字符串的翻译。然后一位同事为此目的实现了这种类型:

export class TranslatedString {
  [language: string]: string;
}

显然,这被称为 Index Signature,但我自己从未真正使用过它,所以我不完全理解它是如何工作的。当我在运行时检查它的一个实例时,它看起来像这样:

{de: "TestDE", en: "TestEN", fr: "TestFR"}
de:"TestDE"
en:"TestEN"
fr:"TestFR"
__proto__:{}

我现在处于需要删除这种类型的翻译的情况,但我想不出办法。似乎没有删除或删除函数,我可以调用它来通过其键删除元素。真的没有办法做到这一点,或者我怎样才能从 TranslatedString?

的实例中删除翻译

在运行时你得到的对象是一个普通的JavaScript对象

translations = {de: "TestDE", en: "TestEN", fr: "TestFR"}

所以 delete 应该这样做:

delete translations['de']

 // or 

delete translations.de