我试图构建一个类型来描述"简单对象",这是一个只包含基元类型的对象,其他对象和数组也只包含基基元类型。。。或其他对象和阵列等
type Primitive = string | number | boolean
type SimpleArray = Array<Primitive | SimpleObject | SimpleArray>
type SimpleObject = Record<string, Primitive | SimpleObject | SimpleArray>
但是,有人告诉我,我不能递归地使用SimpleObject
类型声明。有没有办法描述这种类型?
您可以通过将Record<string, ...>
替换为{ [key: string]: ... }
(基本相同(来修复此问题:
type SimpleObject = { [k: string]: Primitive | SimpleObject | SimpleArray }
顺便说一下,您可以将以上所有内容简化为:
type SimpleObject = string | number | boolean | SimpleObject[] | { [key: string]: SimpleObject };