ts中 如何扩展koa的属性

发布于 2022-09-11 18:30:06 字数 924 浏览 27 评论 0

import * as Koa from 'koa'
const app = new Koa()

app.a = 10
app.children.hong = 'hong'

我想给koa扩展这两个属性,该怎么修改呢
我试过以下方法 不管用。

1.
import * as Koa from 'koa'
declare module 'koa' {
  interface Application {
    a: number,
    children: {
      hong: string
    }
  }
}
2.
import * as Koa from 'koa'
declare module 'koa' {
  type a = number
  type children = any
}
3.
import * as KoaApplication from 'koa'
declare module 'koa' {
  export class Application {
    a: any
    children: any
  }
}
4.
import KoaApplication = require('koa')
declare module 'koa' {
  export class Application extends KoaApplication{
    a: any
    children: any
  }
}

我直接在@type下面的class Application 里面添加属性,就可以顺利编译过。但是在外面我就不知道怎么给他添加了。因为他里面是class ,我不太清楚如何在外面继承里面的class Application 然后在定义新属性。上面第4种方法尝试了,却不管用

求大神解答?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

你丑哭了我 2022-09-18 18:30:06
declare class MyKoa extends Koa {
    a: number;
    children: {
        hong: string
    };
}

const app = new MyKoa();

app.a = 10
app.children.hong = 'hong'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文