实现了一个函数可实现对象扁平化,数据转换示例(传入 => 传出):
{ margin: { left: '20px', right: '30px' } } => { 'margin-left': '20px', 'margin-right': '30px' }
{ color: { button: { warning: 'yellow' } } } => { 'color-button-warning': 'yellow' }
请问如何编写函数的类型声明呢?以便于vscode里面提示扁平化后自动生成的键名,对开发者友好,比如 color-button-warning 和 margin-left。
补充一下传入的结构化数据的类型声明:
declare const a = {margin: {left: string}}
类似这样,是自动生成的。
做个类型体操就行,大致写了下,
PS: 应该是有更好的写法,不过暂时也没想好。另外有个问题这里没有推断出对应的值出来