{ [k: string]: string } 和 Map<string, string> 有什么区别?



我理解正常的Map<string, string>格式。但我见过一些人在相同的用例中使用{ [k: string]: string }

它们是相同的还是不同的?我找不到关于它的用例的适当文档。

有可能把一个转换成另一个吗?

它是否必须与对象去结构化有关?

在基本意义上,{ [k: string]: string }代表对象,Map<string, string>代表Javascript Map原语,这并不完全相同。

例如,您可以执行Map<object, string>,因为Map可以使用对象作为键。但是,{ [k: object]: string }立即抛出一个错误,因为javascript对象不能使用对象作为它们的键。

这与析构函数无关,而是与标准javascript对象和Map之间的区别有关。我不知道你说你看到它们可以互换使用是什么意思,因为这个打字游戏在混淆它们时会出错。

相关内容

最新更新