When I went through these books (https://interpreterbook.com/ and its sequel https://compilerbook.com/), I did them in Typescript, which was a great exercise. I felt like this is the sort of program that really gives TS its time to shine.
Ironically, I didn't get _any_ speed up using the interpreter vs the compiler in my TS implementations. I'm not sure if that's because I wasn't careful enough with memory allocation in the compiler or V8 had already sped up the interpreter as fast as it was going to go. It's been on my list to dig in and try to fix that, but I've since moved onto other projects.