如何使用 .d.ts 文件

Posted

技术标签:

【中文标题】如何使用 .d.ts 文件【英文标题】:How to use .d.ts files 【发布时间】:2014-11-29 02:10:53 【问题描述】:

我有一个项目,我在其中使用 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 文件无关。 【参考方案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 中吗?请检查并在本地和全局安装它

【讨论】:

以上是关于如何使用 .d.ts 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 .d.ts 文件

如何在使用`declare namespace`的`d.ts`文件中导入`ts`模块?

如何使用在 .d.ts 文件中定义类型的模块?

如何在没有参考路径的 angularjs 应用程序中使用打字稿定义文件(.d.ts)?

使用 tslint 时如何忽略 *.d.ts 文件?

如果库的实现未与 TS 项目集成,如何使用 d.ts 文件导出的 const 类型?