【问题标题】:How to use .d.ts files如何使用 .d.ts 文件
【发布时间】:2023-03-06 04:04:01
【问题描述】:

我有一个项目,我在其中使用 typescript,并希望使用 typescript 定义文件与 mongoose 等库进行交互。我已经通过

安装了适当的 .d.ts 文件
tsd query mongoose --action install
tsd query node --action install

我正在尝试通过以下代码导入猫鼬

///<reference path="../typings/mongoose/mongoose.d.ts">
import mongoose = require("mongoose");

class MongooseUser
{
    constructor()
    {

    }

    useMongoose():any {
        return mongoose.Collection;
    }
}

显然,我现在没有尝试在这里做任何事情,但是当我转换它时,我得到了以下错误

Unable to resolve external module '"mongoose"'.
Module cannot be aliased to a non-module type.
error TS2095: Could not find symbol 'mongoose'.

要么寻找有关如何使用这些东西的完整示例(遗憾的是,文档提供的内容很糟糕),要么寻找一些指针。谢谢。

【问题讨论】:

  • 你在使用 Visual Studio 吗?
  • 不,我正在使用 PHPStorm
  • 我对这些有点缺乏经验,但解决方案是简单地提供 .d.ts 文件的正确路径。当时我不明白它们只是允许您键入对象的接口,与实际的 mongoose 文件无关。

标签: node.js express mongoose typescript


【解决方案1】:

您的参考标签不正确。你忘了关闭它/&gt;。固定:

///<reference path="../typings/mongoose/mongoose.d.ts"/>

这将帮助您防止此类错误:https://github.com/TypeStrong/grunt-ts#references

【讨论】:

  • 我使用的是 gulp 而不是 grunt,但这并没有解决问题。
【解决方案2】:

d.ts 是您的定义文件,它与 mongoose 软件包无关,仅用于智能感知,您确定 mongoose 已安装在您的 node_module 中吗?请检查并在本地和全局安装它

【讨论】:

    猜你喜欢
    • 2017-01-27
    • 2019-08-14
    • 2016-07-23
    • 2020-02-16
    • 2017-02-02
    • 2018-09-09
    • 2020-08-04
    • 2018-03-23
    • 2017-12-11
    相关资源
    最近更新 更多