在TypeScript

时间:2016-03-18 18:31:34

标签: mysql node.js typescript node-mysql

导入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代码中有错误?

2 个答案:

答案 0 :(得分:1)

我认为导入不起作用,因为你缺少mysql2的打字稿定义。你还没有发布你的typings.json(或tsd.json),但我想对于你已导入定义的nodejs,而不是mysql2,因此你可以导入' http'使用'从'导入语法和mysql2你必须使用普通的javascript nodejs'要求'用于导入它。

答案 1 :(得分:0)

按如下所示安装myql2的打字稿类型定义:

npm install --save-dev types/mysql2#semver:version

您选择哪个版本。

例如:

npm i --save-dev types/mysql2#semver:^1.0.0