Is type inference done by an interpreter static or dynamic?
Typically , type inference in interpreted languages happens after parsing (because type inference works on ASTs) but before interpretation (= execution). Both compilers and  interpreters have a phase distinction between type inference, and the execution. The former happens strictly before the latter.



BTW, it's wrong to say that an "interpreter does the jobs of both compilation and execution". An interpreter does not do compilation. 


A compiler is a meta-program that takes as input a program and outputs another program (the executable). It is this output that is executed.
An interpreter is a meta-program that takes as input a program and executes it.


Maybe the following picture clarifies the issue.