复制styled-system官方代码报ESlint错误,导出的breakpoints是数组还是对象?
styled-system breakpoints导出类型说明
最终导出的breakpoints变量本质是数组类型,同时支持对象属性的访问方式:
- 该配置是styled-system的标准断点写法,会先以数组字面量初始化断点尺寸,再给数组实例追加自定义命名属性,示例逻辑如下:
const breakpoints = ['30em', '48em', '62em', '80em'] // 给数组追加命名属性,适配语义化调用 breakpoints.sm = breakpoints[0] breakpoints.md = breakpoints[1] breakpoints.lg = breakpoints[2] breakpoints.xl = breakpoints[3] export default breakpoints
- 由于JavaScript中数组本身就是特殊的对象类型,所以支持给数组实例追加自定义属性。你可以用
Array.isArray(breakpoints)验证,返回结果为true,确认其属于数组实例。 - 你遇到的ESLint错误是因为常规校验规则不允许给数组追加非数字索引的属性,你可以在对应行添加ESLint忽略注释,或者调整写法先定义对象再补充数组下标属性:
const breakpoints = { sm: '30em', md: '48em', lg: '62em', xl: '80em' } // 按断点顺序补充数组下标,适配styled-system的数组响应式语法 breakpoints[0] = breakpoints.sm breakpoints[1] = breakpoints.md breakpoints[2] = breakpoints.lg breakpoints[3] = breakpoints.xl export default breakpoints
内容的提问来源于stack exchange,提问作者jakhando
相关产品推荐
相关产品推荐

