v5 配置 + “ 解析模块 ” : 长式样式道具失去类型安全( “ Property spinition 不存在 ” ); 缩写为触发符
当前的行为
TypeScript报告Property'marginTop'并不存在.Property'TextAlign'不存在.、Property' Align Projects'不存在.'等等。
失败的组合是不一致的,但具有确定性——例如width ' 类型检查,但w'不;mt'类型检查,但arginTop ' 不;color'/fontSize'工作,但marginTop'/textAlign'/`对齐'。 " / " 铺设 " / " 背景颜色 " 不使用。 这是TypeScript在解决超大小相交类型并默不作声地抛出属性的同时打入内部极限的签名.
这看起来与(已关闭)#3585和#3285密切相关,但仍在最新2.x线上再现.
• 预期行为
所有有效的样式道具(长式和快手)在通过“解析模块”扩展配置时都进行正确的打字检查。
Tamagui 版本
塔马吉: 2.3.3
@tamagui/ 配置 : 2.3.3
@tamagui/web: 2.3.0QQ平台(网络,iOS,Android)
所有平台——这是纯粹的类型级别(`tsc'),独立于运行时间/捆绑器.
- 复制
最小,只有类型级别。 不需要捆绑机-`npx tsc- No Emit'就够了。
(原文如上):
从“@tamagui/config/v5”中导入{默认Config}; 从“ tamagui ” 导入{ create Tamagui } ;
导出 const tamagui Config = 创建 Tamagui(默认 Config ) ; 导出默认 tamagui Config ;
导出类型 AppTamagui Config = tamagui Config ; 声明模块“ tamagui” { 界面 TamaguiCustomConfig 扩展 AppTamagui Config QQ {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
校对:Soup
时间轴 :
从 “ tamagui ” 导入 { text, YStack } ;
导出函数 Probe (){
返回( ưμ㼯A
<YStack对齐项目="中心"比值Top="8"padding="4">
<text color="$gray10" 文本Align="中"字体Size="$5">ok</text>
</YStack> (中文(简体) ).
(三)
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?** 运行:** “npx tsc-noEmit”
** 结果:** 错误,例如:
出错 TS2322: 属性“ 边际Top” 在“ 内置属性和外置属性 < RNTamaguiText NonStyleProps, TextStylePropsBase 的密钥 > &... 5 更多... & RefAt属性 <...> 上不存在 。
错误 TS2322: 属性“ textAlign” 不存在...
错误 TS2322: 属性对齐 项'不存在....同一元素上 " 彩色 " 和 " 彩色 " 不变。
调查/调查结果
我分了两部分来隔离扳机(上面的回放上,`tsc-noEmit'):
长式道具 |-|-|-. `默认计算 ' (如上所记载)
- 减少“ 媒体” 31 + 3 个键 + = (直线边界只是移动) + = ‘媒体:只有‘Q'仍然失败. \\x短手:\x (默认 31 个媒体保存)\x所有长式道具类型检查\x “短手:+”媒体:+++++++++
** 主要的触发因素是短手设定,而不是媒体。 ** 以 “短手 : + ” 表示每个长式道具( 包括 : 主题符号类 . . . . . . .
内容来源: tamagui/tamagui