已开启
使用 slice 替换废弃的 substr 方法 #1
f -创建于 2025年10月28日
使用 slice 替换废弃的 substr 方法 #1
已开启
f -创建于 2025年10月28日
f -
f -
2025年10月28日

PR

PR Checklist

Please check if your PR fulfills the following requirements:

PR Type

What kind of change does this PR introduce?

What is the current behavior?

项目中的 packages/utils/src/string/index.ts 文件中 guid 函数使用了已废弃的 substr() 方法:

export const guid = (prefix = '', length = 8) => prefix + random().toString().substr(2, length)

substr() 方法已被 MDN 标记为废弃(deprecated),虽然目前仍可使用,但不符合现代 JavaScript 最佳实践。

Issue Number: N/A

What is the new behavior?

substr 方法替换为标准的 slice 方法:

export const guid = (prefix = '', length = 8) => prefix + random().toString().slice(2, 2 + length)

此变更保持函数行为完全一致,同时遵循现代 JavaScript 最佳实践。slice(2, 2 + length)substr(2, length) 在此场景下行为完全一致。

好处:

  • 使用现代 JavaScript API
  • 避免未来浏览器移除 substr API 的风险
  • 提高代码可维护性
  • 符合 TypeScript 类型安全检查

Does this PR introduce a breaking change?

Other information

修改详情

  • 文件: packages/utils/src/string/index.ts
  • 行号: 258
  • 修改内容: 将 substr(2, length) 替换为 slice(2, 2 + length)

技术说明

  • substr(start, length): 从 start 位置开始,提取 length 个字符
  • slice(start, end): 从 start 位置到 end(不包含 end)提取字符

测试验证

  • 功能行为完全一致
  • 无需修改现有测试用例
  • 向后兼容

参考资源

likedislike
合并受阻