# 兼容垫片

polyfill是一个不会暴露对外api的模块,同时也不需要初始化调用,只是我们会在这里列举它的功能。

鉴于一些历史原因,有个别项目并没有接入Babel来兼容Esnext的语法和Api,这可能对开发带来一定的不便。同时例如FastClick在iOS端input标签上有一个“几乎众所周知”的交互Bug,通常需要新增一个兼容处理等等。

我们希望将这样相对常用的兼容处理完全收口,令业务项目不用到处打补丁。当然即使不考虑async这类复杂语法糖的实现,单是原型方法的兼容实现也是Babel中非常庞大的一部分,全部囊括到Kreator中是绝对不可能的——Lodash可能是更适合您的选择。鉴于我们一定程度上不考虑向下兼容的原则,polyfill模块也只会兼容常用的原型方法,旨在提升老项目“偶尔”迭代时的开发效率。

目前polyfill的兼容内容如下:

  • FastClick iOS端聚焦问题处理
  • String.prototype.include
  • String.prototype.trim
  • String.prototype.padStart
  • String.prototype.padEnd
  • Object.prototype.assign
  • Array.prototype.map
  • Array.prototype.find
  • Array.prototype.findIndex