Definitelytyped: kesalahan TS2304: Tidak dapat menemukan nama 'Set'. 815 diperbolehkanNodeEnvironmentFlags: Set<string>;</string>

Dibuat pada 25 Sep 2018  ·  20Komentar  ·  Sumber: 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>;

helloworld.ts

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

Apa yang harus saya lakukan?

Komentar yang paling membantu

Sama di sini dengan target dan lib sebagai es6 .
Saya telah berhasil memperbaikinya dengan menginstal @types/[email protected] .

Semua 20 komentar

Tambahkan "lib": ["es6"] atau lebih tinggi.

Saya mengalami masalah yang sama, tetapi menambahkan opsi lib pada file tsconfig tidak menyelesaikannya.

Versi TypeScript: 3.1.1
Versi pengetikan simpul: 10.11.5

Langkah-langkah untuk mereproduksi

$ 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>;

Saya berbicara dengan banyak orang tentang ini, jika lib tidak memperbaikinya maka pada titik tertentu tsconfig Anda tidak dimuat dengan benar, harap pastikan bahwa lib dimuat dengan benar bersama-sama dengan file menggunakan include atau files opsi di tsconfig.json .

@andy-ms haruskah saya mengembalikan perubahan Set ?
Sementara orang benar-benar harus menggunakan lib >es6 untuk digunakan dengan simpul, ini _bisa_ dilihat sebagai perubahan yang melanggar.

Saya pikir Anda dapat mendefinisikan interface Set<T> {} di bawah interface SetConstructor {} di node/index.d.ts sehingga akan bekerja dengan --lib es5 .

masalah yang sama.

☁  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 Saya dapat memberitahu Anda tidak menginstal @types/node terbaru (saat ini 10.12.0), karena di sana allowedNodeEnvironmentFlags: ReadonlySet<string>; dan interface ReadonlySet<T> {} dideklarasikan dalam @types/node/index.d.ts .

@andy-ms Terima kasih. Setelah npm rm @types/node -D , masalah ini hilang.

Saya memiliki masalah yang sama dan saya menyelesaikannya menggunakan compilerOptions.types pada tsconfig.json saya. Jadi pada dasarnya saya hanya mencantumkan paket @types yang dibutuhkan di properti itu.

@rannie-peralta masalah ini telah lama diperbaiki dalam tipe dengan melakukan deklarasi ReadonlySet kosong.

Saya juga mengalami masalah yang sama.
package.json
{
"nama": "peta",
"versi": "1.0.0",
"keterangan": "",
"utama": "index.js",
"skrip": {
"test": "echo \"Kesalahan: tidak ada tes yang ditentukan\" && keluar 1"
},
"kata kunci": [],
"Pengarang": "",
"lisensi": "ISC",
"ketergantungan": {
"ketik": "^3.4.5"
}
}
tsconfig.json
{
"compilerOptions": {
"modul": "amd",
"noImplicitAny": benar,
"esModuleInterop": benar,
"sourceMap": benar,
"jsx": "bereaksi",
"jsxFactory": "tsx",
"target": "es6",
"experimentalDecorators": benar,
"preserveConstEnums": benar,
"suppressImplicitAnyIndexErrors": benar,
"lib": ["es2015", "es2016"]
},
"termasuk": [
"./src/*"
],
"mengecualikan": [
"simpul_modul"
]
}
index.js
fungsi tampilanData(){
var myMap = Peta baru();
myMap.set("nama","xxxxxxxx");
}
perintah untuk mengubah menjadi file js

tsc .src\index.ts
Kesalahan:
src/index.ts:4:21 - error TS2583: Cannot find name 'Map'. Do you need to change your target library? Try changing the opsi kompiler lib` ke es2015 atau lebih baru.

4 var myMap = Peta baru();
~~~

Ditemukan 1 kesalahan.`

@Praveer1981 solusinya secara harfiah ada di pesan kesalahan.

Saya menemukan masalah yang sama dan bingung karena tsconfig.json saya memiliki persis apa yang dikatakan pesan kesalahan. Memodifikasi tsconfig.json saya lebih lanjut tidak akan memperbaiki masalah.

Saat Anda meneruskan jalur file ke tsc , saya yakin tsconfig.json diabaikan. Inilah yang terjadi pada saya.

tsc src/foo.ts # menghasilkan kesalahan kompiler yang menyatakan untuk memutakhirkan lib/target saya
tsc # berfungsi dengan baik karena tsconfig.json saya menetapkan target es2015 atau lebih baru

Jadi, jika Anda mendapatkan ini dan tsconfig.json Anda terlihat bagus, periksa kembali apakah Anda meneruskan jalur khusus ke kompiler, dan berpotensi mengabaikan konfigurasi Anda.

Sama disini

node_modules/@types/react/index.d.ts:377:23 - kesalahan TS2583: Tidak dapat menemukan nama 'Set'. Apakah Anda perlu mengubah perpustakaan target Anda? Coba ubah opsi kompiler lib menjadi es2015 atau yang lebih baru.

interactions: Set<SchedulerInteraction>,

Konfigurasi:

{
  "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"
  ]
}

File yang saya urai yang melempar:

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

let g = new Greeter('hello');

export { Greeter };

Sama di sini dengan target dan lib sebagai es6 .
Saya telah berhasil memperbaikinya dengan menginstal @types/[email protected] .

@brunobertoldi
Ya, saya bisa mengkonfirmasi. Jawaban Anda memperbaiki masalah.
Di sini https://github.com/DefinitelyTyped/DefinitelyTyped/issues/29172#issuecomment -527708175

@brunobertoldi , saya ingin menambahkan ini bahwa saya harus membuka Prompt dengan hak administrator untuk menginstal pengetikan ini, tetapi begitu saya melakukannya, itu berhasil!

Terima kasih, omong-omong.

Terima kasih atas detail tambahannya, @thomasio101!

Sama di sini dengan target dan lib sebagai es6 .
Saya telah berhasil memperbaikinya dengan menginstal @types/[email protected] .

luar biasa keren!

Saya akan menyarankan untuk mengikuti cara kerja create-react-app

Di dalam compilerOptions

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

Konten di lib sepenuhnya terserah Anda.

Sama di sini dengan target dan lib sebagai es6 .
Saya telah berhasil memperbaikinya dengan menginstal @types/[email protected] .

Memecahkan masalah

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

alisabzevari picture alisabzevari  ·  3Komentar

fasatrix picture fasatrix  ·  3Komentar

victor-guoyu picture victor-guoyu  ·  3Komentar

Zzzen picture Zzzen  ·  3Komentar

jgoz picture jgoz  ·  3Komentar