如何打破财产变更?

时间:2018-10-15 15:05:36

标签: typescript breakpoints

javascript存在相同的问题,但我认为此处列出的解决方案不适用于打字稿。

首先,我有一个express.Request类型的对象,我想调试其body成员:

function test(req : express.Request, res :express.Response, next:(err:any)=>void) {


  req.defineProperty(body, 'someProp', { //Property 'defineProperty' does not exist on type 'Request'.
    get: function () {
        return req._body;
    },

    set: function (value) {
        debugger; // sets breakpoint
        obj._someProp = value;
    }
});

1 个答案:

答案 0 :(得分:1)

您要查找的方法称为Object.defineProperty,它将定义属性的对象作为第一个参数。正确的用法是这样的:

function test(req: express.Request, res: express.Response, next: (err: any) => void) {

    Object.defineProperty(req, 'body', {
        get: function () {
            return req._body;
        },

        set: function (value) {
            debugger; // sets breakpoint
            req._body = value;
        }
    });
}