严格的道具类型和打出式在 Vue 3 + TypeScript 设置中得到了大部分的注意,但是如果使用 API 的道具默认显示方式, / 是类型安全悄悄地崩溃的地方.
没有类型提示返回,这意味着每个被注入值的消费者要么盲目投出,要么完全失去自动完成——而注入键中的打字变成了运行时间而不是编译时间错误.
默认设置被构建未类型 天真版的编译,但并没有给你任何信息: 这里没有键弦上的字型, 也没有告诉消费者什么形状。
这两个问题都出自于使用平板字符串作为注入键.
注射Key在一出Vue就解决了两个问题,为此会输出一个特定类型。
定义它一次,打出,并同时完全对照同一符号进行打字检查: 最后一个类型不是奇特的—— 老实说,消费者可能在树上没有匹配的提供者的情况下制作,这是一种实时运行的可能性 TypeScript 是强迫你处理的。
处理这个没有定义的案件而不说话?
到处都是 常见的错误是提供默认值来压制类型,而不是实际检查类型: 这虽然可行,但隐藏了一个真正的bug——一个在预期的提供者树外提供的组件——在无声倒计时后.
对于缺少提供者的案件(大多数情况超出了纯UI主题), 将每一次注射都打入一个小堆肥中, 而不是直接打到每个呼叫站点, 意味着错误信息, 无效检查, 以及缩小所有案例的类型完全在一个地方, 而不是在每个消费者身上复制。
正确打入注射反应状态 如果提供的值是一个或一个对象,则通用字应该反映这个,而不是未被包装的形状,否则你会与类型检查器争夺访问权限: 使这个通名错误——将密钥打入实际提供时——是混淆类型错误的常见来源,在应该有这种错误的类型上似乎不存在.
在“适合你类型设置的其余部分 /” 的地方,它是一个更大的严格打字设置的一部分—— 它需要坐在被打入道具的旁边, 排入出质, 以及一个适当的配置, 以实际回报。
如果您尚未建立该基础的其余部分, Vue 3 组件的严格类型走过 覆盖, , , 复写 , 并逐渐通过路径, 以打开一个没有完全重写的现有代码库中的严格模式 .