如何使 4.X Typescript 项目与旧版本的 Typescript 3.X 兼容?

How to make 4.X Typescript project compatible with older version of Typescript 3.X?

如何使构建在 TS 4.X 之上的包与 3.X 兼容?比如,如果你有更新的版本 -> 使用新功能,否则 -> 使用 anyunknown 或旧版本支持的任何内容。

是否有可能将 directives 用于该目的?

您可以在您的 npm 中安装旧版本的打字稿(无论您想要什么,例如:`npm i --dev typescript@3.5.2)并尝试修复错误。然后将打字稿版本恢复为 v4 或任何已经存在的版本。

现在您的代码与指定的旧打字稿版本兼容(只需确保您的代码的功能在更新时不会改变)。

无法在 TypeScript 支持和不支持的功能之间切换。

例如,如果您有一个基于 TS 4.0variadic tuple types 构建的库,则无法在使用 TS 3.0 的包中使用它。

但是,您可以维护两个版本的打字:TS4 之前和 TS4 之后。例如,看看 lodash or react 如何维护多个版本的打字。