打字稿:如何从索引签名中删除密钥?
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
在我基于 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