Не удается заставить узел или ts-узел / регистр больше использовать es2020 (flatMap не является функцией) - PullRequest
0 голосов
/ 08 ноября 2019

Я не могу использовать flatmap с узлом или ts-node, хотя раньше это было возможно в моем коде. Я не уверен, что изменилось, но я получаю эту ошибку 'TypeError: [x].flatMap is not a function' flatMap () должна быть функцией, потому что я явно делаю x массивом (этот код работал раньше без проблем).

вот мой tsconfig. json

{
    "compilerOptions": {
      "moduleResolution": "node",
      "target": "es2020",
      "esModuleInterop": true,
      "sourceMap": true,
      "strictNullChecks": true,
      "outDir": "out",
      //"strictBindCallApply": true,
      //"strict": true
    }
}

и вот мой ланчер

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [

        {
            "type": "node",
            "request": "launch",
            "name": "Launch Program",
            "program": "${workspaceFolder}/src/main.ts",
            "outFiles": ["${workspaceFolder}/out/**/*.js"],
            "preLaunchTask": "npm: build",
            "runtimeArgs": ["-r", "esm"],
            "stopOnEntry": true,
            "console": "integratedTerminal",
        },
        {
            "type": "node",
            "request": "launch",
            "name": "Mocha Tests",
            "program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
            "args": [
                "-u",
                "tdd",
                "--timeout",
                "999999",
                "--colors",
                "--require",
                "esm",
                "--require",
                "ts-node/register",
                "--project",
                "${workspaceFolder}/tsconfig.json",
                "${workspaceFolder}/**/*spec.ts"
            ],
            "console": "integratedTerminal",
            "stopOnEntry": false,
        }
    ]
}

и рассматриваемый вызов плоской карты

(x: discord.Message | discord.Message[] | null): (discord.Message | null)[] => [x].flatMap(
                                // @ts-ignore
                                (t: discord.Message | discord.Message[] | null): (discord.Message | discord.Message[] | null) => t
                            )

еще один пример, который не работает:

const test = [1,3,4,[5,4,2]].flatMap(x => x);

TypeError: [1,3,4,[5,4,2]].flatMap is not a function

Ни ts-узел / регистр, ни ts-узел, кажется, больше не уважают "target": "es2020", и я не уверен, что именно изменилось. VScode имеет контекст для интеллекта для flatMap. Может кто-нибудь объяснить мне, почему он больше не работает?

1 Ответ

1 голос
/ 08 ноября 2019

Проблема заключалась в том, что у меня возник конфликт в номере версии узла после установки программы. Я перестал использовать пакет Snap узла и начал использовать nvm.

...