Was plot.ACF removed from the front end of NLME? Or did I change some setting on accident?gls() vs. lme() in the nlme packageExtract the random effects design matrix in nlmeHow to fit two random effects separately in lme?add lines based on fitted values from lme to faceted ggplot in RCovariance (or correlation) matrix of coefficients in lmep-values of linear combination of coefficients in linear mixed modelRandom-effects on demeand dataIncorporating random intercepts in R package rms for mixed effects logistic regressionHow to translate glmer() call to lme(); and including list() for random effectsError in MEEM(object, conLin, control$niterEM) : Singularity in backsolve at level 0, block 1

Optimization terminology: "Exact" v. "Approximate"

Is there a strong legal guarantee that the U.S. can give to another country that it won't attack them?

Is "De qui parles-tu" (for example) as formal as it is in English, or is it normal for the French to casually say that

Sharing shapefile collection

Extract string from each line of a file

What happened to people in unsafe areas during the Blip?

Why does wrapping aluminium foil around my food help it keep warm, even though aluminium is a good conductor?

What does the phrase "head down the rat's hole" mean here?

Which star / galaxy is moving away from us the fastest?

Apex code to find record diff between two dates (to call API only when needed)

Is anyone advocating the promotion of homosexuality in UK schools?

Swapping "Good" and "Bad"

How can I effectively communicate to recruiters that a phone call is not possible?

How do you move up one folder in Finder?

Managing and organizing the massively increased number of classes after switching to SOLID?

Received a dinner invitation through my employer's email, is it ok to attend?

Graduate student with abysmal English writing skills, how to help

What's the point of having a RAID 1 configuration over incremental backups to a secondary drive?

Why weren't bootable game disks ever common on the IBM PC?

Employers keep telling me my college isn't good enough - is there any way to fix this?

Word meaning to destroy books

If your plane is out-of-control, why does military training instruct releasing the joystick to neutralize controls?

How to deal with moral/legal subjects in writing?

Should disabled buttons give feedback when clicked?



Was plot.ACF removed from the front end of NLME? Or did I change some setting on accident?


gls() vs. lme() in the nlme packageExtract the random effects design matrix in nlmeHow to fit two random effects separately in lme?add lines based on fitted values from lme to faceted ggplot in RCovariance (or correlation) matrix of coefficients in lmep-values of linear combination of coefficients in linear mixed modelRandom-effects on demeand dataIncorporating random intercepts in R package rms for mixed effects logistic regressionHow to translate glmer() call to lme(); and including list() for random effectsError in MEEM(object, conLin, control$niterEM) : Singularity in backsolve at level 0, block 1






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








1















I'm using R to analyze a linear mixed effects model (nlme::lme). I want to plot the ACF values with a dashed line at the alpha level (as plot.ACF does).



After I require(nlme), I can run ACF, but plot.ACF is still not available. I can access it via nlme:::plot.ACF though, meaning it's designated as a hidden function. Was this feature of the package shelved for some reason? If not, is there another likely explanation? Does anyone know a way in which I can make the package export it (even after updating)?










share|improve this question

















  • 3





    Don't know if it changed or not, but because it's object-oriented, just plot (which isn't hidden) will run plot.ACF on any ACF object.

    – Aaron
    Mar 26 at 1:30






  • 1





    It's not removed - you can always check on CRAN yourself if you're unsure

    – Umaomamaomao
    Mar 26 at 1:34











  • @Umaomamaomao, the question isn't if it's removed, but if it's now hidden (which it is in 3.1-137) and if so, why and what to do about it.

    – Aaron
    Mar 26 at 1:42












  • @Aaron I'm so incredibly sorry. Can you ever forgive me?

    – Umaomamaomao
    Mar 26 at 2:49











  • @Umaomamaomao: I'm assuming you're in jest, but either way, of course! :)

    – Aaron
    Mar 26 at 18:57

















1















I'm using R to analyze a linear mixed effects model (nlme::lme). I want to plot the ACF values with a dashed line at the alpha level (as plot.ACF does).



After I require(nlme), I can run ACF, but plot.ACF is still not available. I can access it via nlme:::plot.ACF though, meaning it's designated as a hidden function. Was this feature of the package shelved for some reason? If not, is there another likely explanation? Does anyone know a way in which I can make the package export it (even after updating)?










share|improve this question

















  • 3





    Don't know if it changed or not, but because it's object-oriented, just plot (which isn't hidden) will run plot.ACF on any ACF object.

    – Aaron
    Mar 26 at 1:30






  • 1





    It's not removed - you can always check on CRAN yourself if you're unsure

    – Umaomamaomao
    Mar 26 at 1:34











  • @Umaomamaomao, the question isn't if it's removed, but if it's now hidden (which it is in 3.1-137) and if so, why and what to do about it.

    – Aaron
    Mar 26 at 1:42












  • @Aaron I'm so incredibly sorry. Can you ever forgive me?

    – Umaomamaomao
    Mar 26 at 2:49











  • @Umaomamaomao: I'm assuming you're in jest, but either way, of course! :)

    – Aaron
    Mar 26 at 18:57













1












1








1








I'm using R to analyze a linear mixed effects model (nlme::lme). I want to plot the ACF values with a dashed line at the alpha level (as plot.ACF does).



After I require(nlme), I can run ACF, but plot.ACF is still not available. I can access it via nlme:::plot.ACF though, meaning it's designated as a hidden function. Was this feature of the package shelved for some reason? If not, is there another likely explanation? Does anyone know a way in which I can make the package export it (even after updating)?










share|improve this question














I'm using R to analyze a linear mixed effects model (nlme::lme). I want to plot the ACF values with a dashed line at the alpha level (as plot.ACF does).



After I require(nlme), I can run ACF, but plot.ACF is still not available. I can access it via nlme:::plot.ACF though, meaning it's designated as a hidden function. Was this feature of the package shelved for some reason? If not, is there another likely explanation? Does anyone know a way in which I can make the package export it (even after updating)?







r nlme






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Mar 26 at 1:23









jordan wingenrothjordan wingenroth

82 bronze badges




82 bronze badges







  • 3





    Don't know if it changed or not, but because it's object-oriented, just plot (which isn't hidden) will run plot.ACF on any ACF object.

    – Aaron
    Mar 26 at 1:30






  • 1





    It's not removed - you can always check on CRAN yourself if you're unsure

    – Umaomamaomao
    Mar 26 at 1:34











  • @Umaomamaomao, the question isn't if it's removed, but if it's now hidden (which it is in 3.1-137) and if so, why and what to do about it.

    – Aaron
    Mar 26 at 1:42












  • @Aaron I'm so incredibly sorry. Can you ever forgive me?

    – Umaomamaomao
    Mar 26 at 2:49











  • @Umaomamaomao: I'm assuming you're in jest, but either way, of course! :)

    – Aaron
    Mar 26 at 18:57












  • 3





    Don't know if it changed or not, but because it's object-oriented, just plot (which isn't hidden) will run plot.ACF on any ACF object.

    – Aaron
    Mar 26 at 1:30






  • 1





    It's not removed - you can always check on CRAN yourself if you're unsure

    – Umaomamaomao
    Mar 26 at 1:34











  • @Umaomamaomao, the question isn't if it's removed, but if it's now hidden (which it is in 3.1-137) and if so, why and what to do about it.

    – Aaron
    Mar 26 at 1:42












  • @Aaron I'm so incredibly sorry. Can you ever forgive me?

    – Umaomamaomao
    Mar 26 at 2:49











  • @Umaomamaomao: I'm assuming you're in jest, but either way, of course! :)

    – Aaron
    Mar 26 at 18:57







3




3





Don't know if it changed or not, but because it's object-oriented, just plot (which isn't hidden) will run plot.ACF on any ACF object.

– Aaron
Mar 26 at 1:30





Don't know if it changed or not, but because it's object-oriented, just plot (which isn't hidden) will run plot.ACF on any ACF object.

– Aaron
Mar 26 at 1:30




1




1





It's not removed - you can always check on CRAN yourself if you're unsure

– Umaomamaomao
Mar 26 at 1:34





It's not removed - you can always check on CRAN yourself if you're unsure

– Umaomamaomao
Mar 26 at 1:34













@Umaomamaomao, the question isn't if it's removed, but if it's now hidden (which it is in 3.1-137) and if so, why and what to do about it.

– Aaron
Mar 26 at 1:42






@Umaomamaomao, the question isn't if it's removed, but if it's now hidden (which it is in 3.1-137) and if so, why and what to do about it.

– Aaron
Mar 26 at 1:42














@Aaron I'm so incredibly sorry. Can you ever forgive me?

– Umaomamaomao
Mar 26 at 2:49





@Aaron I'm so incredibly sorry. Can you ever forgive me?

– Umaomamaomao
Mar 26 at 2:49













@Umaomamaomao: I'm assuming you're in jest, but either way, of course! :)

– Aaron
Mar 26 at 18:57





@Umaomamaomao: I'm assuming you're in jest, but either way, of course! :)

– Aaron
Mar 26 at 18:57












2 Answers
2






active

oldest

votes


















1














Yes, it is hidden from the front end of the nlme package (ie, not exported); I don't know if this is a change or not.



> nlme::plot.ACF
Error: 'plot.ACF' is not an exported object from 'namespace:nlme'


However, you can access the help for it using ?plot.ACF, where it demonstrates the following usage:




## S3 method for class 'ACF'
plot(x, alpha, xlab, ylab, grid, ...)



Note that it's not suggesting using plot.ACF but instead just plot. This works because the plot function is object-oriented, so will call plot.ACF behind the scenes whenever plot is called on an ACF object.



That is, to plot an ACF object you should just type plot, not plot.ACF.






share|improve this answer






























    1














    As far as I can tell, the plot.ACF function was never exported. The earliest version of nlme from https://cran.r-project.org/src/contrib/Archive/nlme/ that I could find with a NAMESPACE file was nlme_3.1-40 (Date: 2003-05-16), and that function would have been invisible (at the console). It still would have been accessible with the methods function and the code would have been available with the triple dot mechanism (:::) or getAnywhere functions.



    getAnywhere("plot.ACF") Retruns formal parameters, funciton body and information about functions environment
    getS3method("plot", "ACF") # returns same code as getAnywhere

    x <- methods(class="ACF")
    str(x)
    #--------------
    'MethodsFunction' chr "plot.ACF"
    - attr(*, "info")='data.frame': 1 obs. of 4 variables:
    ..$ visible: logi FALSE
    ..$ from : Factor w/ 1 level "registered S3method": 1
    ..$ generic: chr "plot"
    ..$ isS4 : logi FALSE
    - attr(*, "byclass")= logi TRUE


    I apologize for my earlier, somewhat snarky comment, because on re-reading your post it appears you do understand that the functions is available, just not visible. What's still unclear is why you thought it was ever visible.



    If you want to have plot.ACF exported, you could add it to the list of exported functions in the NAMESPACE file and rebuild the package. Or you could export on the fly with:



    plot.ACF <- getAnywhere("plot.ACF")





    share|improve this answer

























    • Hi @42-, nice detective work and a great example of being friendly and welcoming to new contributors, thanks!

      – Aaron
      Mar 27 at 14:44













    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55348591%2fwas-plot-acf-removed-from-the-front-end-of-nlme-or-did-i-change-some-setting-on%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    Yes, it is hidden from the front end of the nlme package (ie, not exported); I don't know if this is a change or not.



    > nlme::plot.ACF
    Error: 'plot.ACF' is not an exported object from 'namespace:nlme'


    However, you can access the help for it using ?plot.ACF, where it demonstrates the following usage:




    ## S3 method for class 'ACF'
    plot(x, alpha, xlab, ylab, grid, ...)



    Note that it's not suggesting using plot.ACF but instead just plot. This works because the plot function is object-oriented, so will call plot.ACF behind the scenes whenever plot is called on an ACF object.



    That is, to plot an ACF object you should just type plot, not plot.ACF.






    share|improve this answer



























      1














      Yes, it is hidden from the front end of the nlme package (ie, not exported); I don't know if this is a change or not.



      > nlme::plot.ACF
      Error: 'plot.ACF' is not an exported object from 'namespace:nlme'


      However, you can access the help for it using ?plot.ACF, where it demonstrates the following usage:




      ## S3 method for class 'ACF'
      plot(x, alpha, xlab, ylab, grid, ...)



      Note that it's not suggesting using plot.ACF but instead just plot. This works because the plot function is object-oriented, so will call plot.ACF behind the scenes whenever plot is called on an ACF object.



      That is, to plot an ACF object you should just type plot, not plot.ACF.






      share|improve this answer

























        1












        1








        1







        Yes, it is hidden from the front end of the nlme package (ie, not exported); I don't know if this is a change or not.



        > nlme::plot.ACF
        Error: 'plot.ACF' is not an exported object from 'namespace:nlme'


        However, you can access the help for it using ?plot.ACF, where it demonstrates the following usage:




        ## S3 method for class 'ACF'
        plot(x, alpha, xlab, ylab, grid, ...)



        Note that it's not suggesting using plot.ACF but instead just plot. This works because the plot function is object-oriented, so will call plot.ACF behind the scenes whenever plot is called on an ACF object.



        That is, to plot an ACF object you should just type plot, not plot.ACF.






        share|improve this answer













        Yes, it is hidden from the front end of the nlme package (ie, not exported); I don't know if this is a change or not.



        > nlme::plot.ACF
        Error: 'plot.ACF' is not an exported object from 'namespace:nlme'


        However, you can access the help for it using ?plot.ACF, where it demonstrates the following usage:




        ## S3 method for class 'ACF'
        plot(x, alpha, xlab, ylab, grid, ...)



        Note that it's not suggesting using plot.ACF but instead just plot. This works because the plot function is object-oriented, so will call plot.ACF behind the scenes whenever plot is called on an ACF object.



        That is, to plot an ACF object you should just type plot, not plot.ACF.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 26 at 19:04









        AaronAaron

        30.5k4 gold badges59 silver badges116 bronze badges




        30.5k4 gold badges59 silver badges116 bronze badges























            1














            As far as I can tell, the plot.ACF function was never exported. The earliest version of nlme from https://cran.r-project.org/src/contrib/Archive/nlme/ that I could find with a NAMESPACE file was nlme_3.1-40 (Date: 2003-05-16), and that function would have been invisible (at the console). It still would have been accessible with the methods function and the code would have been available with the triple dot mechanism (:::) or getAnywhere functions.



            getAnywhere("plot.ACF") Retruns formal parameters, funciton body and information about functions environment
            getS3method("plot", "ACF") # returns same code as getAnywhere

            x <- methods(class="ACF")
            str(x)
            #--------------
            'MethodsFunction' chr "plot.ACF"
            - attr(*, "info")='data.frame': 1 obs. of 4 variables:
            ..$ visible: logi FALSE
            ..$ from : Factor w/ 1 level "registered S3method": 1
            ..$ generic: chr "plot"
            ..$ isS4 : logi FALSE
            - attr(*, "byclass")= logi TRUE


            I apologize for my earlier, somewhat snarky comment, because on re-reading your post it appears you do understand that the functions is available, just not visible. What's still unclear is why you thought it was ever visible.



            If you want to have plot.ACF exported, you could add it to the list of exported functions in the NAMESPACE file and rebuild the package. Or you could export on the fly with:



            plot.ACF <- getAnywhere("plot.ACF")





            share|improve this answer

























            • Hi @42-, nice detective work and a great example of being friendly and welcoming to new contributors, thanks!

              – Aaron
              Mar 27 at 14:44















            1














            As far as I can tell, the plot.ACF function was never exported. The earliest version of nlme from https://cran.r-project.org/src/contrib/Archive/nlme/ that I could find with a NAMESPACE file was nlme_3.1-40 (Date: 2003-05-16), and that function would have been invisible (at the console). It still would have been accessible with the methods function and the code would have been available with the triple dot mechanism (:::) or getAnywhere functions.



            getAnywhere("plot.ACF") Retruns formal parameters, funciton body and information about functions environment
            getS3method("plot", "ACF") # returns same code as getAnywhere

            x <- methods(class="ACF")
            str(x)
            #--------------
            'MethodsFunction' chr "plot.ACF"
            - attr(*, "info")='data.frame': 1 obs. of 4 variables:
            ..$ visible: logi FALSE
            ..$ from : Factor w/ 1 level "registered S3method": 1
            ..$ generic: chr "plot"
            ..$ isS4 : logi FALSE
            - attr(*, "byclass")= logi TRUE


            I apologize for my earlier, somewhat snarky comment, because on re-reading your post it appears you do understand that the functions is available, just not visible. What's still unclear is why you thought it was ever visible.



            If you want to have plot.ACF exported, you could add it to the list of exported functions in the NAMESPACE file and rebuild the package. Or you could export on the fly with:



            plot.ACF <- getAnywhere("plot.ACF")





            share|improve this answer

























            • Hi @42-, nice detective work and a great example of being friendly and welcoming to new contributors, thanks!

              – Aaron
              Mar 27 at 14:44













            1












            1








            1







            As far as I can tell, the plot.ACF function was never exported. The earliest version of nlme from https://cran.r-project.org/src/contrib/Archive/nlme/ that I could find with a NAMESPACE file was nlme_3.1-40 (Date: 2003-05-16), and that function would have been invisible (at the console). It still would have been accessible with the methods function and the code would have been available with the triple dot mechanism (:::) or getAnywhere functions.



            getAnywhere("plot.ACF") Retruns formal parameters, funciton body and information about functions environment
            getS3method("plot", "ACF") # returns same code as getAnywhere

            x <- methods(class="ACF")
            str(x)
            #--------------
            'MethodsFunction' chr "plot.ACF"
            - attr(*, "info")='data.frame': 1 obs. of 4 variables:
            ..$ visible: logi FALSE
            ..$ from : Factor w/ 1 level "registered S3method": 1
            ..$ generic: chr "plot"
            ..$ isS4 : logi FALSE
            - attr(*, "byclass")= logi TRUE


            I apologize for my earlier, somewhat snarky comment, because on re-reading your post it appears you do understand that the functions is available, just not visible. What's still unclear is why you thought it was ever visible.



            If you want to have plot.ACF exported, you could add it to the list of exported functions in the NAMESPACE file and rebuild the package. Or you could export on the fly with:



            plot.ACF <- getAnywhere("plot.ACF")





            share|improve this answer















            As far as I can tell, the plot.ACF function was never exported. The earliest version of nlme from https://cran.r-project.org/src/contrib/Archive/nlme/ that I could find with a NAMESPACE file was nlme_3.1-40 (Date: 2003-05-16), and that function would have been invisible (at the console). It still would have been accessible with the methods function and the code would have been available with the triple dot mechanism (:::) or getAnywhere functions.



            getAnywhere("plot.ACF") Retruns formal parameters, funciton body and information about functions environment
            getS3method("plot", "ACF") # returns same code as getAnywhere

            x <- methods(class="ACF")
            str(x)
            #--------------
            'MethodsFunction' chr "plot.ACF"
            - attr(*, "info")='data.frame': 1 obs. of 4 variables:
            ..$ visible: logi FALSE
            ..$ from : Factor w/ 1 level "registered S3method": 1
            ..$ generic: chr "plot"
            ..$ isS4 : logi FALSE
            - attr(*, "byclass")= logi TRUE


            I apologize for my earlier, somewhat snarky comment, because on re-reading your post it appears you do understand that the functions is available, just not visible. What's still unclear is why you thought it was ever visible.



            If you want to have plot.ACF exported, you could add it to the list of exported functions in the NAMESPACE file and rebuild the package. Or you could export on the fly with:



            plot.ACF <- getAnywhere("plot.ACF")






            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Mar 27 at 15:37

























            answered Mar 26 at 19:55









            42-42-

            219k16 gold badges277 silver badges410 bronze badges




            219k16 gold badges277 silver badges410 bronze badges












            • Hi @42-, nice detective work and a great example of being friendly and welcoming to new contributors, thanks!

              – Aaron
              Mar 27 at 14:44

















            • Hi @42-, nice detective work and a great example of being friendly and welcoming to new contributors, thanks!

              – Aaron
              Mar 27 at 14:44
















            Hi @42-, nice detective work and a great example of being friendly and welcoming to new contributors, thanks!

            – Aaron
            Mar 27 at 14:44





            Hi @42-, nice detective work and a great example of being friendly and welcoming to new contributors, thanks!

            – Aaron
            Mar 27 at 14:44

















            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55348591%2fwas-plot-acf-removed-from-the-front-end-of-nlme-or-did-i-change-some-setting-on%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Kamusi Yaliyomo Aina za kamusi | Muundo wa kamusi | Faida za kamusi | Dhima ya picha katika kamusi | Marejeo | Tazama pia | Viungo vya nje | UrambazajiKuhusu kamusiGo-SwahiliWiki-KamusiKamusi ya Kiswahili na Kiingerezakuihariri na kuongeza habari

            Swift 4 - func physicsWorld not invoked on collision? The Next CEO of Stack OverflowHow to call Objective-C code from Swift#ifdef replacement in the Swift language@selector() in Swift?#pragma mark in Swift?Swift for loop: for index, element in array?dispatch_after - GCD in Swift?Swift Beta performance: sorting arraysSplit a String into an array in Swift?The use of Swift 3 @objc inference in Swift 4 mode is deprecated?How to optimize UITableViewCell, because my UITableView lags

            Access current req object everywhere in Node.js ExpressWhy are global variables considered bad practice? (node.js)Using req & res across functionsHow do I get the path to the current script with Node.js?What is Node.js' Connect, Express and “middleware”?Node.js w/ express error handling in callbackHow to access the GET parameters after “?” in Express?Modify Node.js req object parametersAccess “app” variable inside of ExpressJS/ConnectJS middleware?Node.js Express app - request objectAngular Http Module considered middleware?Session variables in ExpressJSAdd properties to the req object in expressjs with Typescript