检索词
类型脚本字符串键值类型
建议
添加一个额外的大量使用的类型-简单的对象与字符串键,使用了很多作为“原始Map”。
每次写{ [ key: string ]: T }
都很累。
想把export type StrMap<T> = { [ key: string ]: T };
作为基本类型之一。
对象中的键与字符串(Object.keys(_object).join('/')
)的距离并不太远。
这与#26797并不完全相关,因为它是一个更广泛的用例,恕我直言。
用例
我使用这种类型在众多的项目在众多的模块.
示例
检查清单
我的建议符合以下准则:
- 这不会是对现有TypeScript/JavaScript代码的重大更改
- 这不会改变现有JavaScript代码的运行时行为
- 这可以在不基于表达式的类型发出不同JS的情况下实现
- 这不是运行时功能(例如,库功能、带有JavaScript输出的非ECMAScript语法等)
- 这个特性将与TypeScript's Design Goals的其余部分一致。
4条答案
按热度按时间busg9geu1#
有什么想法?
虽然
Record<T1, T2>
在某些用例(如Map类型)中有它的优点,但我发现自己写Record<string,
比写其他任何东西都要多。我通过我的GitHub项目做了一个quick search来查看第一个类型参数:
string
keyof something
pzfprimi2#
Record<string, T>
已经很短了(而且打字也不那么烦人了)。有什么想法吗?wj8zmpe13#
抱歉,我发现记录的描述非常差。
意义是非常重要的,作为Map的Object是重要的意义。
有很多比较的帖子比较Map和对象。
我也这样做,如果对象的数量少于一千,我就用Object,因为它的代码少得多。
Record<string, T>
并不比Something<T>
短。我的观点是,stringkey对于基于这个事实创建类型同样有用。
bn31dyow4#
关联数组--在其他语言中也有这样的原语。这就是我要讨论的))