为什么TypeScript找不到安装在'node_modules'中的模块?

Lea*_*yes 8 npm typescript tsconfig

给定以下目录结构:

{project}/
  |-- node_modules/
  |    |-- lodash
  |-- src/
  |    |-- index.ts
  |-- lib/ (output)
  |    |-- index.js
  |    |-- index.d.ts
  |-- package.json
  |-- tsconfig.json
Run Code Online (Sandbox Code Playgroud)

虽然内置输出功能正常; 该tsc命令抱怨当我使用以下任何一项时它无法解析lodash模块:

import _ from "lodash";
import _ = require("lodash");
import * as _ from "lodash";
Run Code Online (Sandbox Code Playgroud)

在我的'tsconfig.json'文件中,我包含了以下内容:

...

"target": "es6",
"sourceMap": true,
"module": "commonjs",
"moduleResolution": "node",

...
Run Code Online (Sandbox Code Playgroud)

但尽管如此,它仍然没有找到使用npm安装的任何模块.

我错过了使TypeScript找到这些模块所需的东西吗?

我意识到没有TypeScript定义文件,TypeScript无法提供额外的类型检查; 但是,当然这些应该默认为any类型对吗?

rgv*_*sar 6

由于lodash在node_modules/lodash文件夹中没有定义文件,因此无效.您必须使用typings下载它或使用环境声明而不是导入:

declare var _: any;
Run Code Online (Sandbox Code Playgroud)

对于node.js,您必须使用:

var _ = require('lodash');
Run Code Online (Sandbox Code Playgroud)