Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(type): useRouter TParams should be optional #7156

Merged
merged 3 commits into from
Aug 14, 2020

Conversation

songkeys
Copy link
Contributor

@songkeys songkeys commented Jul 24, 2020

这个 PR 做了什么? (简要描述所做更改)

在自己包装页面的 navigate 方法时,会将类型也带入,方便开发人员知晓页面参数的 key。如:

function push<T extends object>(url: string, params?: T) {
  // Taro.navigateTo...
}

使用 useRouter 时,同样可以用类型定义来获取当前页面的参数 key,比较方便。

但是,useRouterTParams 当前是 Record<string, string>,强制每个 key 都必须存在。而我们在使用 push 方式时,并不一定使用了全部的参数。导致两者的类型定义会有冲突。

从意义上来说,TParams 也不一定所有内容都存在。

所以,建议 useRouterTParams 改成 Partial<Record<string, string>>

这个 PR 是什么类型? (至少选择一个)

  • 错误修复(Bugfix) issue id #
  • 新功能(Feature)
  • 代码重构(Refactor)
  • TypeScript 类型定义修改(Typings)
  • 文档修改(Docs)
  • 代码风格更新(Code style update)
  • 其他,请描述(Other, please describe):

这个 PR 满足以下需求:

  • 提交到 master 分支
  • Commit 信息遵循 Angular Style Commit Message Conventions
  • 所有测试用例已经通过
  • 代码遵循相关包中的 .eslintrc, .tslintrc, .stylelintrc 所规定的规范
  • 在本地测试可用,不会影响到其它功能

这个 PR 涉及以下平台:

  • 微信小程序
  • 支付宝小程序
  • 百度小程序
  • 头条小程序
  • QQ 轻应用
  • 快应用平台(QuickApp)
  • Web 平台(H5)
  • 移动端(React-Native)

其它需要 Reviewer 或社区知晓的内容:

@Chen-jj
Copy link
Contributor

Chen-jj commented Jul 27, 2020

ci 挂了

@ZakaryCode ZakaryCode self-requested a review August 14, 2020 08:41
@ZakaryCode ZakaryCode added the A-typings Area - TypeScript Typings 相关 label Aug 14, 2020
Copy link
Contributor

@ZakaryCode ZakaryCode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感谢贡献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-typings Area - TypeScript Typings 相关 V-3 Version - 3.x
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants