Что значит !. и! в конце строки?

Символы ! и ! в TypeScript имеют разную семантику.

Знак ! используется как постфиксный оператор, который указывает на то, что свойство или переменная не равны null или undefined. Это называется "неопределённой утверждающей постфиксной операцией". Зачастую, компилятор TypeScript генерирует ошибку, если вы пытаетесь обратиться к свойству или переменной, которая может быть null или undefined. Однако, иногда мы можем быть уверены, что определённое выражение, несмотря на предупреждение компилятора, будет иметь значение, отличное от null или undefined. В этом случае, приставка ! дозволяет нам сказать компилятору, что мы уверены в этом, и что выражение не может иметь значение null или undefined. Это сузит область предупреждений компилятора и позволит нам использовать свойства или переменные без проверки на null или undefined.

Пример использования оператора !:

const myElement = document.getElementById("my-element")!;
myElement.innerHTML = "Hello, TypeScript!";

В данном примере, мы используем ! после вызова getElementById, чтобы убедиться, что мы получили непустой элемент. Это предотвратит возможность вызова innerHTML у null или undefined.

Символы ! в конце строки могут использоваться для указания восклицательного или утвердительного предложения. Они могут быть использованы, например, в комментариях или описаниях. Это не имеет никакого отношения к программированию или языку TypeScript.