form-create icon indicating copy to clipboard operation
form-create copied to clipboard

children()函数参数类型定义错误

Open danel996 opened this issue 3 years ago • 1 comments

版本号 (version) @form-create/[email protected]

问题描述 (Issue) 参考 #72 中的代码 return maker.input('商品价格', 'price', '100').children([maker.create('span').slot('append').children(['元'])]);

上述代码在ts中会报类型错误:

不能将类型“Creator<OptionAttrs, CreatorAttrs, RuleAttrs, ApiAttrs>”分配给类型“string | RuleChildren<OptionAttrs, CreatorAttrs, RuleAttrs, ApiAttrs>”。

复现步骤 文件:@form-create\core\types\index.d.ts第308行 问题: BaseCreateor.children()参数类型声明错误 children(prop: Array<RuleChildren<OptionAttrs, CreatorAttrs, RuleAttrs, ApiAttrs> | string>): this;

// 为了简化描述, <OptionAttrs, CreatorAttrs, RuleAttrs, ApiAttrs> 泛型参数就不写了 export type RuleChildren = FormRule[] | RuleChildrenFn<OptionAttrs, CreatorAttrs, RuleAttrs, ApiAttrs>; export type FormRule = Rule | Creator;

如果忽略泛型中的string类型, 最终children()函数的参数可以表述为:
children(prop: Array<Creator[]>): this;

原因: children()需要的是一个 Array<Creator[]>, 而传递给它的是一个 Array<Creator>

danel996 avatar Jul 18 '22 01:07 danel996

感谢反馈,下个版本修复

xaboy avatar Jul 18 '22 03:07 xaboy

最新版本已修复

xaboy avatar Aug 21 '22 13:08 xaboy