Definitelytyped: error TS2304: No se puede encontrar el nombre 'Conjunto'. 815 banderas de entorno de nodo permitidas: establecer<string>;</string>

Creado en 25 sept. 2018  ·  20Comentarios  ·  Fuente: DefinitelyTyped/DefinitelyTyped

D:\workshop\www
λ node -v
v8.12.0

D:\workshop\www
λ npm -v
6.4.1

D:\workshop\www
λ npm install typescript -g
C:\Users\dell\AppData\Roaming\npm\tsc -> C:\Users\dell\AppData\Roaming\npm\node_modules\typescript\bin\tsc
C:\Users\dell\AppData\Roaming\npm\tsserver -> C:\Users\dell\AppData\Roaming\npm\node_modules\typescript\bin\tsserver
+ [email protected]
updated 1 package in 3.061s

D:\workshop\www
λ tsc --version
Version 3.0.3

D:\workshop\www
λ mkdir typescript_learning

D:\workshop\www
λ cd typescript_learning

D:\workshop\www\typescript_learning
λ npm init -y
Wrote to D:\workshop\www\typescript_learning\package.json:

{
  "name": "typescript_learning",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}



D:\workshop\www\typescript_learning  ([email protected])
λ tsc --init
message TS6071: Successfully created a tsconfig.json file.

D:\workshop\www\typescript_learning  ([email protected])
λ npm install @types/node --dev-save
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN [email protected] No description
npm WARN [email protected] No repository field.

+ @types/[email protected]
added 1 package from 30 contributors in 1.657s

D:\workshop\www\typescript_learning  ([email protected])
λ touch helloworld.ts

D:\workshop\www\typescript_learning  ([email protected])
λ tsc helloworld.ts
node_modules/@types/node/index.d.ts:815:38 - error TS2304: Cannot find name 'Set'.

815         allowedNodeEnvironmentFlags: Set<string>;

holamundo.ts

var a:string = "HelloWorld"
console.log(a)

¿Qué tengo que hacer?

Comentario más útil

Lo mismo aquí con target y lib como es6 .
Logré solucionar esto instalando @types/[email protected] .

Todos 20 comentarios

Agrega "lib": ["es6"] o superior.

Tengo el mismo problema, pero agregar la opción lib en el archivo tsconfig no lo resolvió.

Versión mecanografiada: 3.1.1
Versión de tipificación de nodos: 10.11.5

pasos para reproducir

$ mkdir test
$ cd test
$ npm init -y
$ npm install --save-dev typescript @types/node
$ echo 'console.log("test")' > index.ts
$ ./node_modules/.bin/tsc --init

Add lib: "es2015" to tsconfig.json

$ ./node_modules/.bin/tsc index.ts

node_modules/@types/node/index.d.ts:815:38 - error TS2583: Cannot find name 'Set'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

815         allowedNodeEnvironmentFlags: Set<string>;

Hablé con muchas personas sobre esto, si lib no lo soluciona, en algún momento su tsconfig no se está cargando correctamente, asegúrese de que la lib se esté cargando correctamente junto con el archivo usando include opción files en tsconfig.json .

@andy-ms, ¿debería revertir el cambio Set ?
Si bien la gente realmente debería usar la >es6 para usarla con el nodo, esto _podría_ verse como un cambio importante.

Creo que podría definir interface Set<T> {} por debajo interface SetConstructor {} en node/index.d.ts para que funcione con --lib es5 .

mismo problema

☁  jest-codelab [master] ⚡  $(npm bin)/tsc ./src/@types/index.ts
node_modules/@types/node/index.d.ts:815:38 - error TS2583: Cannot find name 'Set'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.

815         allowedNodeEnvironmentFlags: Set<string>;
                                         ~~~

tsconfig.json :

"lib": ["es2015", "es2016"]

package.json :

"devDependencies": {
    "@types/jest": "^23.3.3",
    "@types/node": "^10.11.4",
    "jest": "^23.6.0",
    "ts-jest": "^23.10.4",
    "tslint": "^5.11.0",
    "typescript": "^3.1.1"
  }

@mrdulin , puedo decir que no tiene instalado el último @types/node (actualmente 10.12.0), porque allí está allowedNodeEnvironmentFlags: ReadonlySet<string>; y interface ReadonlySet<T> {} está declarado en @types/node/index.d.ts .

@andy-ms Gracias. Después npm rm @types/node -D , este problema desaparece.

Tengo el mismo problema y lo resuelvo usando compilerOptions.types en mi tsconfig.json . Básicamente, solo enumeré el paquete @types necesario en esa propiedad.

@rannie-peralta, este problema se solucionó durante mucho tiempo al hacer una declaración vacía ReadonlySet .

Yo también encontré el mismo tipo de problema.
paquete.json
{
"nombre": "mapa",
"versión": "1.0.0",
"descripción": "",
"principal": "index.js",
"guiones": {
"prueba": "echo \"Error: no se especificó ninguna prueba\" && exit 1"
},
"palabras clave": [],
"autor": "",
"licencia": "ISC",
"dependencias": {
"mecanografiado": "^3.4.5"
}
}
tsconfig.json
{
"Opciones del compilador": {
"módulo": "amd",
"noImplicitAny": cierto,
"esModuleInterop": verdadero,
"sourceMap": cierto,
"jsx": "reaccionar",
"jsxFactory": "tsx",
"objetivo": "es6",
"Decoradores experimentales": cierto,
"preservarConstEnums": verdadero,
"suppressImplicitAnyIndexErrors": verdadero,
"lib": ["es2015", "es2016"]
},
"incluir": [
"./origen/*"
],
"excluir": [
"módulos_nodos"
]
}
índice.js
función mostrarDatos(){
var miMapa = nuevo Mapa();
miMapa.set("nombre","xxxxxxxx");
}
comando para convertir en archivo js

tsc .src\index.ts
Error :
src/index.ts:4:21 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the opción del compilador lib` para es2015 o posterior.

4 var miMapa = nuevo Mapa();
~~~

Encontrado 1 error.`

@ Praveer1981 , la solución está literalmente en el mensaje de error.

Encontré este mismo problema y estaba confundido porque mi tsconfig.json tiene exactamente lo que dice el mensaje de error. Modificar más mi tsconfig.json no solucionaría el problema.

Cuando pasa una ruta de archivo a tsc , creo que se ignora el tsconfig.json . Esto es lo que me estaba pasando.

tsc src/foo.ts # da como resultado errores del compilador que indican actualizar mi lib/objetivo
tsc # funciona bien porque mi tsconfig.json estaba especificando un objetivo de es2015 o posterior

Entonces, si obtiene esto y su tsconfig.json se ve bien, verifique dos veces si está pasando una ruta personalizada al compilador y posiblemente ignorando su configuración.

Aquí igual

node_modules/@types/react/index.d.ts:377:23 - error TS2583: No se puede encontrar el nombre 'Set'. ¿Necesita cambiar su biblioteca de destino? Intente cambiar la opción del compilador lib a es2015 o posterior.

interactions: Set<SchedulerInteraction>,

Configuración:

{
  "compilerOptions": {
    "target": "es5",
    "target: "es5", // <= doesn't help
    "lib": [
      "dom",
      "dom.iterable",
      "esnext",
      "es2015", // <= doesn't help
      "es6", // <= doesn't help
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "sourceMap": true,
    "baseUrl": "./",
    "jsx": "preserve"
  },
  "include": [
    "./**/*",
    "*.tsx"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts"
  ]
}

Archivo que analizo que arroja:

class Greeter {
  public greeting: string;
  constructor(msg: string) {
    this.greeting = msg;
  }
}

let g = new Greeter('hello');

export { Greeter };

Lo mismo aquí con target y lib como es6 .
Logré solucionar esto instalando @types/[email protected] .

@brunobertoldi
Sí, puedo confirmar. Tu respuesta soluciona el problema.
Aquí https://github.com/DefinitelyTyped/DefinitelyTyped/issues/29172#issuecomment -527708175

@brunobertoldi , me gustaría agregar a esto que tuve que abrir un aviso con privilegios de administrador para instalar estos tipos, pero una vez que lo hice, ¡funcionó!

Gracias por cierto.

¡Gracias por los detalles adicionales, @thomasio101!

Lo mismo aquí con target y lib como es6 .
Logré solucionar esto instalando @types/[email protected] .

excelente genial!

Sugeriría seguir la forma en que funciona create-react-app

Dentro de las opciones del compilador

    ...
    "skipLibCheck": true,
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
   ...

El contenido de lib depende totalmente de usted.

Lo mismo aquí con target y lib como es6 .
Logré solucionar esto instalando @types/[email protected] .

Resuelve el problema

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

demisx picture demisx  ·  3Comentarios

lilling picture lilling  ·  3Comentarios

victor-guoyu picture victor-guoyu  ·  3Comentarios

fasatrix picture fasatrix  ·  3Comentarios

JWT
svipas picture svipas  ·  3Comentarios