export const COLORS = {
GREEN_BACKGROUND: "#00d8ae",
GREEN_TEXT: "#038c72",
BLUE: "#162044",
GRAYS: Array.from(Array(15).keys()).map(
(_, i) => {
const brightness = 16 * (1 + i)
return `rgb(${brightness}, ${brightness}, ${brightness})`
},
),
}
我在找一个定义这种对象类型的速记。如果没有格雷斯阵列,我们可以:
interface IColors = {
[k:string] : string
}
但正在努力
interface IColors {
[k:string] : string
Grays: string[]
}
因为Grays对象不遵循上面一行中设置的规则,所以产生一个错误。
目前是否有一种方法可以在不单独定义每个属性的类型的情况下编写这样的类型?
我们当然可以使用联合类型
interface IColors {
[k:string] : string | string[]
}
但这会扩大个别颜色的种类,阻止我们通过颜色。蓝色例如字符串。