如何从index.d.ts中的@types导入接口?

时间:2018-11-21 12:38:19

标签: typescript typescript-typings

Express公开Express.RequestExpress.Response,但我还需要Express.NextFunction接口,该接口在Express名称空间中不可用。

如何在index.d.ts中使用NextFunction界面?

上下文:

  • index.d.ts声明一个名称空间 ServerPlugin

  • ServerPlugin包含一个名为 Params

  • 的接口
  • 在应用程序中的任何地方,我都可以按预期使用ServerPlugin.Params

但是,一旦我从@types/express导入NextFunction,在index.d.ts中,使用ServerPlugin.Params的所有文件都会出现错误。

  

找不到命名空间“ ServerPlugin”

index.d.ts

如果不导入NextFunction并注释掉next =>没有错误

declare namespace ServerPlugin {
    interface Params {
        req: Express.Response;
        res: Express.Request;
        next: NextFunction;
        options: object;
        // ... and much more
    }
}

import { NextFunction } from 'express';

user.ts

此文件说它找不到命名空间ServerPlugin。

如果我import { ServerPlugin } from '../../index',没有错误,但是在使用NextFunction之前不必导入。

import { userViewerChunk } from './graphql/UserType';

const user: Function = ({ next, extendSchema }: ServerPlugin.Params): void => {
    extendSchema(userViewerChunk);
    next();
};

export default user;

0 个答案:

没有答案