打字稿 replaceAll 未在 es5 中转译

Typescript replaceAll not transpiled in es5

我在我的代码中使用带有 ESNEXT(截至 2021 年)replaceAll 的 Typescript,因为它比使用正则表达式更清晰。

我正在转译到es5,但是在dist文件夹中,在转译后的js代码中,replaceAll保持原样并且出现TypeError: replaceAll is not a function错误.

我认为 Typescript 会以与 es5 一起工作的方式将其转化为 es5。为什么不这样做?我该如何解决这个问题?

我的 TS 配置是:

{
    "compilerOptions": {
        "strict": true,
        "target": "es5",
        "lib": [
            "ES2021"
        ],
        "sourceMap": true,
        "outDir": "../dist/server",
        "baseUrl": ".",
        "resolveJsonModule": true,
        "downlevelIteration": true,
        "paths": {
            "@/*": [
                "./*"
            ]
        }
    }
}

TypeScript 会将现代 JS 语法 转译为 ES5,但不会执行 polyfilling(运行时 api)。

您可以为此使用 core-js。将以下内容添加到您的应用程序入口点:

import 'core-js'; // <- at the top of your entry point

更多

https://www.npmjs.com/package/core-js