【问题标题】:How to use TypeScript ambient declaration interfaces in interface declared in d.ts file如何在 d.ts 文件中声明的接口中使用 TypeScript 环境声明接口
【发布时间】:2016-03-06 06:19:54
【问题描述】:

我想在 .ts 文件中做一个助手,例如:

class ResponseHelper implements IResponseHelper {...}

而 IResponseHelper 是简单的 .d.ts 文件,带有

import * as mongoose from 'mongoose';
import * as express from 'express'
interface IResponseHelper {
    toStandartResponse(response: mongoose.Promise<any>, res: express.Response): mongoose.Promise<any>;
}

您可以看到 toStandartResponse 中的参数来自环境声明的猫鼬。所以这如果没问题,但如果我这样做,我不能将它与类 ResponseHelper 实现 IResponseHelper 之类的“实现”一起使用,因为我收到错误“在外部模块 ResponseHelper 中找不到符号 IResponseHelper”,换句话说,编译器看不到 d.ts 文件。 如果我从 d.ts 中删除导入语句。文件一切正常,但我无法指定响应类型。

有什么方法可以一起使用吗?

【问题讨论】:

    标签: node.js typescript


    【解决方案1】:

    我相信当您使用 import 时,会使文件成为模块,因此您必须 export 任何您希望可见的成员:

    export interface IResponseHelper { }
    

    现在你可以从其他文件中import它:

    import {IResponseHelper} from "./IResponseHelper";
    
    class ResponseHelper implements IResponseHelper { }
    

    【讨论】:

    • 我会试试这个,但这很奇怪,因为 .d.ts 是定义文件并且没有生成代码。那么在这种情况下,javascript 的输出将是什么。它应该会导致模块不存在或smthng的错误。
    猜你喜欢
    • 2017-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 2020-12-24
    • 2017-02-01
    • 1970-01-01
    • 2018-11-26
    相关资源
    最近更新 更多