ts Impossible de redéclarer la variable « nom » de portée bloc.

Impossible de redéclarer la variable « nom » de portée bloc.

problème

// 报错:Cannot redeclare block-scoped variable 'name'.ts(2451)
// lib.dom.d.ts(27029, 15): 'name' was also declared here.
let name:string = '阳阳';
let age:number = 11;
document.write(`<h1>name=${
      
      name} age=${
      
      age}</h1>`)

raison

Par défaut, les typages DOM sont l'environnement d'exploitation global,

  • Lors de la déclaration du nom, il porte le même nom que l'attribut name sous l'objet window global dans le DOM.
  • Par conséquent, une erreur est signalée : Impossible de redéclarer la variable de portée bloc 'name'.ts(2451)

solution

méthode 1

  • Modifier la configuration ts
  • Par défaut dans l'environnement dom, passer à l'environnement es6
{
    
    
    "compilerOptions": {
    
    
        "lib": [
            "es2015" // 默认是 dom 环境下
        ]
    }
}

Méthode 2

  • recommander
  • Ne modifiez pas la configuration ts
  • En déclarant le prix actuel sous forme de module, il peut être distingué de l'environnement global
  • Dans Typescript, tant que le mot-clé import ou export existe dans le fichier, il est considéré comme un module
let name:string = '阳阳';
let age:number = 11;
document.write(`<h1>name=${
      
      name} age=${
      
      age}</h1>`)
export {
    
    }

おすすめ

転載: blog.csdn.net/qubes/article/details/132378423