Yes! I was waiting for this so long, Typescript is the most flexible typed OOP language and it's way more than just a JS successor.
STS has at runtime four kinds of unrelated object types:
1. a dynamic map type has named (string-indexed) properties that can hold values of any type; 2. a function (closure) type; 3. a class type describes instances of a class, which are treated nominally, via an efficient runtime subtype check on each field/method access, as described below; 4. an array (collection) type.
Don't know much about STS or TS but I assume the usual JS class syntax works as spelled out here: https://www.typescriptlang.org/docs/handbook/classes.html