web-dev-qa-db-ja.com

TypeScriptでlodash-esを正しく使用する方法

TypeScriptプロジェクトでlodash-esを使用する必要がありますが、正しく構成できません。常にSyntaxError: Unexpected identifierのようなエラーが報告されます

hello.ts

import upperCase from 'lodash-es/upperCase'

console.log('Hello ' + upperCase('TypeScript') + '!');

package.json

{
  "scripts": {
    "demo": "ts-node hello.ts"
  },
  "dependencies": {
    "lodash-es": "4.17.11"
  },
  "devDependencies": {
    "@types/lodash-es": "4.17.1",
    "ts-node": "7.0.0",
    "TypeScript": "3.0.1"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "target": "es6",
    "module": "commonjs"
  }
}

ts-node hello.tsを実行すると、次のようなエラーが報告されます。

/TypeScript-use-lodash-es-demo/node_modules/lodash-es/upperCase.js:1
    (function (exports, require, module, __filename, __dirname) { import createCompounder from './_createCompounder.js';
                                                                         ^^^^^^^^^^^^^^^^

    SyntaxError: Unexpected identifier
        at new Script (vm.js:79:7)
        at createScript (vm.js:251:10)

この問題の小さなデモもセットアップしました。必要に応じて、クローンを作成して試すことができます。 https://github.com/freewind-demos/TypeScript-use-lodash-es-demo

関連する質問は、babelでlodash-esを使用することです: lodash-esを使用するようにbabelを正しく構成する方法 。彼らがまったく同じ理由を持っているかどうかわからないので、ここでTypeScriptを求めました

7
Freewind

ここ からタイプをロードできます:

npm install --save-dev @types/lodash-es

そしてそれを次のように使用します:

import { camelCase } from "lodash-es"
0
atilkan