在打字稿中使用 mysql 类型
Posted
技术标签:
【中文标题】在打字稿中使用 mysql 类型【英文标题】:Using mysql types in typescript 【发布时间】:2018-01-31 11:11:37 【问题描述】:我有一个需要使用 mysqljs (https://www.npmjs.com/package/mysql) 的 nodejs typescript 项目,我已经导入了definitelyTyped 包 (https://www.npmjs.com/package/@types/mysql) 并将它们包含在我的 tsconfig 文件中
tsconfig.json
“编译器选项”: “noImplicitAny”:假, “模块”:“commonjs”, “noEmitOnError”:是的, “删除评论”:假, “源地图”:是的, “目标”:“es6” , “排除”: [ “节点模块” ], “类型根”:[ "node_modules/@types", “脚本/打字/节点” ], “类型”:[ "mysql", “节点” ]
我可以正确使用 mysql 模块功能,但我无法访问类型(IConnection、IQuery 等)。 我还可以从智能感知中看到参数和返回类型。
例子
import * as mysql from 'mysql'
...
getUser(username: string): User
mysql.createConnection( host: "...", user: "...", password: "..." );
但我想创建一个返回在 mysql 类型中定义的类型的方法(例如 IQuery)
类似
getUser(username:string): IQuery
作为一个 c# 背景的打字稿初学者,我不明白这里发生了什么。
感谢您的帮助。
编辑:
我试过在他输入前加上前缀但没有成功,也试过通过这种格式导入import IConnection from 'mysql'
再次感谢。
【问题讨论】:
【参考方案1】:似乎 ReSharper 是我的问题,但我仍然没有找到如何忽略错误或修复它们。 我重新安装了 Visual Studio 2017,它在没有 Resharper 的情况下工作,但是当我安装它时,我又开始遇到问题了。 谢谢您的帮助! 如果我能找到解决方案,我会对此进行编辑。
【讨论】:
【参考方案2】:你可以通过在接口前加上mysql
来访问它:
getUser(username:string): mysql.IQuery
【讨论】:
我试过了,但它仍然没有显示或编译,也许它是我的 IDE? 你真的安装了这些类型吗?npm install @types/mysql --save-dev
是的,我可以在我的 IDE 中看到这些类型,但我似乎无法从模块外部访问它们。我也试过你的命令,但没有成功。
我可以使用与您完全相同的tsconfig
的界面。你能发布一些可复制的东西吗?
ReSharper 似乎是我的问题,仍然没有找到解决方法,但它超出了主题。以上是关于在打字稿中使用 mysql 类型的主要内容,如果未能解决你的问题,请参考以下文章