代码之家  ›  专栏  ›  技术社区  ›  zewa666

如何处理由于更新的TypeScript版本而导致的库中断更改

  •  1
  • zewa666  · 技术社区  · 7 年前

    作为一个库的拥有者,你渴望用最少的破坏性更改为用户提供最好的特性。据我所知,如果您的库是用TypeScript编写的,那么它取决于TS的特定版本。假设我们是在v2.8.x上,突然我们想升级到TS v3.x.x,因为有一个很棒的新特性。 接下来发生的是,我的库下一个版本,包括TS依赖性bump,将不得不作为一个突破性的更改发布,遵循SemVer right?

    同时,JavaScript用户也可以使用这个库,他们不会发现有什么大的冲突,因为对于他们来说,不使用类型定义,实际上没有什么改变。所以我觉得有点进退两难的最佳做法在这里会是什么。

    1 回复  |  直到 7 年前
        1
  •  1
  •   basarat    7 年前

    假设我们在v2.8.x上,突然我们想升级到TS v3.x.x,因为有一个很棒的新特性。接下来发生的事情是,我的库下一个版本,包括TS依赖性bump,将不得不作为一个突破性的更改发布,遵循SemVer right

    如果你的图书馆 类型定义 (生成的 .d.ts 文件) 习惯于 要使用TS2.8而不再使用TS2.8,则应将其作为主要版本发布。

    请注意,这很可能不会仅仅因为您正在更改ts版本而发生你必须积极使用一些新的 签名 你的类型中的TS特性导致了这一点。

    同时,这个库也可能被JavaScript用户使用,他们不会看到出现大的冲突的原因,因为对于他们来说,不使用类型定义,实际上没有什么改变

    不是每一个突变都会影响 全部的 人。JS用户可以读取changelog并忽略它。