https://medium.com/fullstack-programming-in-english/type-assertions-as-const-and-non-null-assertion-operator-in-typescript-with-examples-20028cf17628