2016-08-07 7 views
0

これは、すべてのコードがkoaを使用していても、特定のkoa質問ではありません。私はノードとモジュールシステムの新機能です。
すべての要求がRequest interfaceによって定義され興亜を使用する場合:既存のインターフェイスを拡張する

declare module "koa" { 
    namespace Koa { 
     ... 

     export interface Request { 
      ... 
     } 
     ... 
    } 
    ... 
    namespace Koa {} 
    export = Koa; 
} 

私はbodyparserミドルウェアを使用していますので、Requestbodyという名前のプロパティを持っていますが、typescriptですが、これを認識していないので、私はでそれを追加しようとしています参考として、この定義ファイルを追加:

koa.d.tsがある
/// <reference path="globals/koa/index.d.ts" /> 
/// <reference path="koa.d.ts" /> 

import koa = require("koa"); 
... 
app.use(ctx => { 
    console.log(ctx.request.body); // error: Property 'body' does not exist on type 'Request' 
}); 

declare module "koa" { 
    namespace Koa { 
     export interface Request { 
      body: any; 
     } 
    } 

    export default Koa; 
} 

しかし、これはおそらくそれが動作していないので、それを行うには間違った方法です。
どうすればできますか?
ありがとうございます。

答えて

1

私はちょうどこれをやっていました。私は私のcustom-typings.d.tsにこれを追加しました:

import {Request} from "koa"; 

declare module "koa" { 
    interface Request { 
    body: any; 
    } 
} 
+0

質問は、私がどのように配置することができますしている私は、私は、私はKOAの要求を使用しているすべてのファイルでこれを行う必要がないように使用することができます1つのファイルに? –

関連する問題