You can think of as like an operator (left associative):
((window as unknown) as Record<string, unknown>)['ResizeObserver']
So here, it casts window to unknown which is valid. It's upcasting from the type of window to unknown.
Then we downcast from unknown to Record<string, unknown>, which is also perfectly valid.
But if we do only window as Record<string, unknown>, we get an error. Window does not have anything in common with Record<string, unknown>!
Here's an extra example of as to demonstrate that it's just a simple operator:
42 as number as number as number
(((42 as number) as number) as number)
You can think of it like this:
VALID
unknown
^ \
/ \
Window / > Record<string, unknown>
INVALID
Window ------> Record<string, unknown>