2016-08-07 8 views
0

Это не конкретный вопрос каа, хотя весь код использует koa, я просто новый для узла и модульной системы.
При использовании Коа каждый запрос определяется Request interface:Дополнение существующих интерфейсов

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

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

Я использую bodyparser промежуточное программное обеспечение, так Request имеет свойство с именем body но машинопись не знает об этом, и поэтому я пытаюсь добавить что добавление этого файла определения в качестве ссылки:

/// <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' 
}); 

Где koa.d.ts является:

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

Вопрос в том, как я могу поместить, что в одном файле, который можно затем использовать, так что мне не нужно делать это в каждом файле, в котором я использую КОА запросы? –