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>;
helloworld.ts
var a:string = "HelloWorld"
console.log(a)
Que dois-je faire?
Ajoutez "lib": ["es6"]
ou plus.
J'ai le même problème, mais ajouter l'option lib
sur le fichier tsconfig
ne l'a pas résolu.
Version dactylographiée : 3.1.1
Version de typage des nœuds : 10.11.5
$ 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>;
J'ai parlé à de nombreuses personnes à ce sujet, si lib
ne résout pas le problème, à un moment donné, votre tsconfig n'est pas chargé correctement, veuillez vous assurer que la bibliothèque est correctement chargée avec le fichier en utilisant le include
Option files
dans tsconfig.json .
@andy-ms dois-je annuler le changement Set
?
Alors que les gens devraient vraiment utiliser la bibliothèque >es6
pour une utilisation avec le nœud, cela _pourrait_ être considéré comme un changement radical.
Je pense que vous pourriez définir interface Set<T> {}
en dessous interface SetConstructor {}
dans node/index.d.ts
pour que cela fonctionne avec --lib es5
.
même problème.
☁ 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 Je peux vous dire que vous n'avez pas installé le dernier @types/node
(actuellement 10.12.0), car il y a allowedNodeEnvironmentFlags: ReadonlySet<string>;
et interface ReadonlySet<T> {}
est déclaré dans @types/node/index.d.ts
.
@andy-ms Merci. Après npm rm @types/node -D
, ce problème a disparu.
J'ai le même problème et je le résous en utilisant compilerOptions.types
sur mon tsconfig.json
. Donc, fondamentalement, je n'ai répertorié que le package @types
nécessaire dans cette propriété.
@rannie-peralta ce problème a longtemps été résolu dans le type en faisant une déclaration vide ReadonlySet
.
Moi aussi j'ai rencontré le même genre de problème.
package.json
{
"nom": "carte",
"version": "1.0.0",
"la description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Erreur : aucun test spécifié\" && exit 1"
},
"mots clés": [],
"auteur": "",
"licence": "ISC",
"dépendances": {
"typescript": "^3.4.5"
}
}
tsconfig.json
{
"optionscompilateur": {
"module": "amd",
"noImplicitAny": vrai,
"esModuleInterop": vrai,
"sourceMap": vrai,
"jsx": "réagir",
"jsxFactory": "tsx",
"cible": "es6",
"décorateurs expérimentaux": vrai,
"preserveConstEnums": vrai,
"suppressImplicitAnyIndexErrors": vrai,
"lib": ["es2015", "es2016"]
},
"inclure": [
"./src/*"
],
"exclure": [
"node_modules"
]
}
index.js
fonction displayData(){
var maCarte = nouvelle Carte();
maCarte.set("nom","xxxxxxxx");
}
commande pour convertir en fichier js
tsc .src\index.ts
Erreur :
Option du compilateursrc/index.ts:4:21 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the
lib` vers es2015 ou version ultérieure.
4 var maCarte = nouvelle Carte();
~~~
1 erreur trouvée.`
@ Praveer1981 la solution est littéralement dans le message d'erreur.
Je suis tombé sur ce même problème et j'étais confus car mon tsconfig.json a exactement ce que le message d'erreur dit de faire. Modifier davantage mon tsconfig.json ne résoudrait pas le problème.
Lorsque vous passez un chemin de fichier à tsc
, je pense que le tsconfig.json
est ignoré. C'est ce qui m'arrivait.
tsc src/foo.ts
# entraîne des erreurs de compilation indiquant de mettre à jour ma bibliothèque/cible
tsc
# fonctionne bien car mon tsconfig.json spécifiait une cible de es2015 ou version ultérieure
Donc, si vous obtenez ceci et que votre tsconfig.json semble bon, vérifiez si vous transmettez un chemin personnalisé au compilateur et ignorez potentiellement votre configuration.
Pareil ici
node_modules/@types/react/index.d.ts:377:23 - erreur TS2583 : Impossible de trouver le nom 'Set'. Avez-vous besoin de changer votre bibliothèque cible ? Essayez de remplacer l'option de compilation
lib
par es2015 ou une version ultérieure.
interactions: Set<SchedulerInteraction>,
Configuration :
{
"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"
]
}
Fichier que j'analyse qui lance :
class Greeter {
public greeting: string;
constructor(msg: string) {
this.greeting = msg;
}
}
let g = new Greeter('hello');
export { Greeter };
Pareil ici avec target
et lib
comme es6
.
J'ai réussi à résoudre ce problème en installant @types/[email protected]
.
@brunobertoldi
Oui, je peux confirmer. Votre réponse résout le problème.
Ici https://github.com/DefinitelyTyped/DefinitelyTyped/issues/29172#issuecomment -527708175
@brunobertoldi , je voudrais ajouter à cela que j'ai dû ouvrir une invite avec des privilèges d'administrateur pour installer ces saisies, mais une fois que je l'ai fait, cela a fonctionné !
Merci, au fait.
Merci pour les détails supplémentaires, @thomasio101 !
Pareil ici avec
target
etlib
commees6
.
J'ai réussi à résoudre ce problème en installant@types/[email protected]
.
excellent frais!
Je suggérerais de suivre le fonctionnement create-react-app
À l'intérieur du compilateurOptions
...
"skipLibCheck": true,
"lib": [
"dom",
"dom.iterable",
"esnext"
],
...
Le contenu de lib dépend entièrement de vous.
Pareil ici avec
target
etlib
commees6
.
J'ai réussi à résoudre ce problème en installant@types/[email protected]
.
Résout le problème
Commentaire le plus utile
Pareil ici avec
target
etlib
commees6
.J'ai réussi à résoudre ce problème en installant
@types/[email protected]
.