TypeScript ругается на getAttribute(‘href’). Как получить href ссылки?

TypeScript ругается на вызов метода getAttribute('href'), потому что TypeScript статически типизированный язык программирования, и он хочет, чтобы тип всех переменных был известен во время компиляции. В этом случае, TypeScript не знает, какой тип значения возвращается из getAttribute('href'), и поэтому выдает ошибку.

Чтобы получить href ссылки без ошибок, можно воспользоваться альтернативными способами. В зависимости от структуры вашего кода, вы можете воспользоваться одним из следующих вариантов:

1. Использовать свойство href, доступное в объекте HTMLAnchorElement:

const link = document.getElementById('my-link') as HTMLAnchorElement;
const href = link.href;

2. Использовать свойство getAttribute('href') с указанием явного типа:

const link = document.getElementById('my-link');
const href = link.getAttribute('href') as string;

В этом случае, мы указываем TypeScript, что значение href должно быть типом string.

3. Использовать условную проверку (null/undefined), чтобы избежать ошибки:

const link = document.getElementById('my-link');
const href = link ? link.getAttribute('href') : '';

Здесь, мы проверяем, существует ли ссылка, и только затем вызываем getAttribute('href'). Если ссылка не существует, мы присваиваем значение по умолчанию ''.

4. Использовать нестрогую типизацию (путем отключения строгих проверок TypeScript) для конкретного участка кода:

//@ts-ignore
const href = link.getAttribute('href');

В этом случае, мы используем аннотацию //@ts-ignore, чтобы TypeScript проигнорировал ошибку и не выполнял строгую типизацию для данной строки кода. Однако, использование этого метода не рекомендуется, так как он может привести к другим ошибкам или неожиданному поведению в вашем коде.

Надеюсь, эти варианты помогут вам получить href ссылки без ошибок в TypeScript.