recherche

Maison  >  Questions et réponses  >  le corps du texte

Correction du bug TS2339 - La méthode de propriété n'existe pas sur 'HTMLElement'

Lorsque j'appuie sur le bouton "Suivant", le code ci-dessous se déclenche, effectuant l'action requise (faire défiler jusqu'à mon élément si nécessaire).

Mais j'obtiens cette erreur : Doesn't exist on 错误TS2339:属性'scrollIntoViewIfNeeded'在类型'HTMLElement'. et je n'arrive pas à construire mon projet.

const h3Title = ref<HTMLElement | null>(null)
function nextStep(
  currentStep.value++;
  
  if (h3Title.value) {
    h3Title.value.scrollIntoViewIfNeeded({behavior: "smooth", block: "start"})
  }

P粉481815897P粉481815897341 Il y a quelques jours653

répondre à tous(1)je répondrai

  • P粉958986070

    P粉9589860702023-12-26 10:50:15

    Je pense que h3Title.value.scrollIntoView({block: "nearest"}) l'utilisation de la propriété scrollIntoView standard permettra d'obtenir ce que vous voulez (pas de défilement si l'élément est déjà visible).

    Si vous voulez vraiment que TypeScript reconnaisse la propriété scrollIntoViewIfNeeded non standard, vous pouvez l'ajouter à l'interface HTMLElement (ou créer une nouvelle interface qui étend HTMLElement) :

    // global.d.ts
    interface HTMLElement {
      scrollIntoViewIfNeeded?: any;
    }
    

    ou : changer h3Title.value 转换为 anytype

    (h3Title.value as any).scrollIntoViewIfNeeded()
    

    répondre
    0
  • Annulerrépondre