I don't quite understand what's the point of a type system when it's going to be defenestrated by dynamic typing. In javascript the typeof operator can be used to check the type.
Because the runtime still takes advantage of those concepts, an array doesn't stop being an array, and magically turns into a list, with different hardware requirements only because a language is dynamic.
Same applies to all other remaining types.
That is how even though people see Lisp as a dynamic language using only lists, in reality most Lisps (and Schemes) since the 1980's have all necessary types to write machine friendly code (aka mechanical sympathy), including having existed graphical workstations that only failed the market because UNIX and C were as cheap as free beer for all pratical purposes.
The type system still allows organizing and abstracting code in standardized ways.
Static type checking is nice and is certainly my preference, but dynamic type checking doesn’t mean no types. It means the types are checked at runtime.