如何在 TypeScript 定义文件中使用外部模块的类型?
Posted
技术标签:
【中文标题】如何在 TypeScript 定义文件中使用外部模块的类型?【英文标题】:How do I use an external module's types in TypeScript definition file? 【发布时间】:2017-12-08 20:23:18 【问题描述】:我正在尝试在 TypeScript 定义文件中引用 Mongoose 类型。目前我正在使用常规的.ts
文件,这样我就可以做
import mongoose from 'mongoose'
但我希望它是一个正确的定义文件 (.d.ts
)。问题是定义文件中不允许import
s。所以我试过了
/// <reference types="mongoose" />
interface doc extends mongoose
interface doc extends mongoose.Document
和
/// <reference path="../../node_modules/@types/mongoose/index.d.ts" />
interface doc extends mongoose
interface doc extends mongoose.Document
但它们都不起作用 - 无论我使用 mongoose
还是 Mongoose
。 VS Code 只是说cannot find name 'mongoose'
或cannot find namespace 'mongoose'
。
我在这里不知所措。如何在我的定义文件中使用来自外部模块的定义?
【问题讨论】:
【参考方案1】:我认为猫鼬类型没有默认导出,这可能会导致此问题。尝试在 d.ts 文件中添加 import * as mongoose from 'mongoose'
或 import mongoose = require('mongoose')
【讨论】:
看我的问题,定义文件中不允许导入。 我相信他们是。查看一些外部 angular d.ts 文件,例如:github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/…以上是关于如何在 TypeScript 定义文件中使用外部模块的类型?的主要内容,如果未能解决你的问题,请参考以下文章
我应该将外部库的 TypeScript 定义文件检查到 git 中吗?
使用带有 Vue 和 TypeScript 类装饰器语法的外部定义组件
如何让 Webpack 和 Typescript 使用外部 node_module 文件夹?