TypeScript的常量与JavaScript的Map对象

k2arahey  于 2023-03-09  发布在  TypeScript
关注(0)|答案(1)|浏览(214)

我有一个简单的目标:

const simpleObject = {
  one: 'one',
  two: 'two',
  three: 'three'
}

现在,我明白了ES2015之前的对象不能保证返回键的顺序与插入键的顺序相同,但现在这已经不是问题了。
我们使用的是TypeScript,这时出现了as const实际上是否会保持键顺序的问题:

const simpleObject = {
  one: 'one',
  two: 'two',
  three: 'three'
} as const

目前尚不清楚as const会产生什么影响。
JavaScript的Map对象确实维护键顺序,因此可以用来代替上面的对象。
那么,当我们希望保留键序时,可以使用什么,最好使用什么呢?

7lrncoxx

7lrncoxx1#

as const在运行时没有作用。它指示(typescript)编译器为该特定表达式推断最窄的类型。
为了简单起见,您可以在 typescript 练习场中通过查看所传递的代码来了解这一点
如果键的顺序很重要,则use a Map,因为如上所述,as const在运行时没有任何影响。
对于It is unclear what effect as const would have这个问题,答案是,对于开发人员体验,它将为您提供一个更窄的类型,但它在运行时不会有任何影响。

相关问题