在TypeScript中导入时找不到模块

我有一个导入nodejs模块的小问题。 对于http模块,这个语法运行良好:

import * as http from "http"; 

但是,当我试图做'mysql2'node.js模块相同:

 import * as database from "mysql2"; 

我给了我一个错误:

 Cannot find module 'mysql2' 

并拒绝编译该行。 我甚至尝试过这样的语法(不知道为什么):

 import {database} from 'mysql2'; 

但是只有我这样写的时候没有错误:

 let database = require('mysql2'); 

在tsconfig.json我已经设置:

 "module": "commonjs", "moduleResolution": "node", 

当然,我已经通过npm在项目文件夹中安装了模块:

 npm install mysql2 --save 

所以我的问题是,为什么导入不工作,我有错误的Visual Studio代码?

我认为导入不起作用,因为你缺lessmysql2的打字稿定义。 你还没有发布你的typings.json(或tsd.json),但我猜你已经导入了定义的nodejs,但不适用于mysql2,因此你可以使用'import from'语法导入'http',而使用mysql2你必须使用plain javascript nodejs'需要'导入它。