Saya mencoba menggunakan Script untuk AWS Lambda saya dan saya mendapatkan kesalahan berikut di mana pun saya menggunakan janji.
kesalahan TS2693: 'Janji' hanya merujuk pada tipe, tetapi digunakan sebagai nilai di sini.
Saya mencoba menggunakan variasi kode berikut
Menggunakan konstruktor Janji
responsePromise = new Promise((resolve, reject) => {
return reject(new Error(`missing is needed data`))
})
menggunakan Promise.reject
responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`));
Versi
Berikut ini adalah versi dalam dependensi dev saya:
"typescript": "^2.2.2"
"@types/aws-lambda": "0.0.9",
"@types/core-js": "^0.9.40",
"@types/node": "^7.0.12",
Isi dari tsconfig.json
{
"compileOnSave": true,
"compilerOptions": {
"module": "commonjs",
// "typeRoots" : ["./typings", "./node_modules/@types"],
"target": "es5",
// "types" : [ "core-js" ],
"noImplicitAny": true,
"strictNullChecks": true,
"allowJs": true,
"noEmit": true,
"alwaysStrict": true,
"preserveConstEnums": true,
"sourceMap": true,
"outDir": "dist",
"moduleResolution": "Node",
"declaration": true,
"lib": [
"es6"
]
},
"include": [
"index.ts",
"lib/**/*.ts"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
]
}
Saya menggunakan grunt-ts dengan konfigurasi berikut untuk menjalankan tugas ts.
ts: {
app: {
tsconfig: {
tsconfig: "./tsconfig.json",
ignoreSettings: true
}
},
...
Saya mencoba dengan solusi yang disebutkan dalam saya dapatkan: [ts] 'Janji' hanya mengacu pada tipe, tetapi sedang digunakan sebagai nilai di sini tetapi tidak berhasil.
javascript
typescript
promise
kalyanvgopal
sumber
sumber
return
.responsePromise = new Promise((resolve, reject) => { reject(new Error("missing is needed data"))})
Saya mencobanya. Tapi itu tidak masalah dengan masalah itu.responsePromise
dinyatakan?Jawaban:
Saya memiliki masalah yang sama dengan
aws-sdk
dan saya menyelesaikannya dengan menggunakan"target": "es2015"
. Initsconfig.json
file saya .sumber
@types/aws-lambda
sudah ketinggalan zaman. Amazon mengirimkan jenis-jenis naskah dengan SDK resmi . Tidak perlu untuk DefinitelyTyped.Hadapi kesalahan yang sama hari ini dan atasi dengan:
Memperbarui:
Menambahkan:
sumber
import {Promise} from 'es6-promise'
;import { Promise } from '../node_modules/es6-promise/es6-promise';
Namun, tampaknya berfungsi dengan baik. Mengapa TS tidak dapat menemukan pengetikan yang diinstal?Saya memecahkan ini dengan menambahkan kode di bawah ini ke file tsconfig.json.
sumber
Dipecahkan dengan mengubah target dalam compilerOptions.
sumber
Ini tip saya. Diuji dengan vscode 1.21.1 (di MAC)
Letakkan di bawah config ke tsconfig.json
ke dalam compilerOptions
Restart IDE (tindakan ini diperlukan: D)
sumber
Saya memiliki kesalahan ini tetapi saya menyelesaikannya dengan menggunakan perintah ini, nama file ts saya adalah menjanjikan-fs.ts:
dan kesalahan hilang
sumber
Tambahkan baris di bawah ini ke file di mana kesalahan terjadi. Ini harus memperbaiki masalah
PS: Ini jelas bukan solusi yang optimal
sumber
TS
jika Anda akan melakukan sesuatu seperti ini. Maksudku, apa gunanya ?!Akhirnya tsc mulai bekerja tanpa kesalahan. Tetapi banyak perubahan. Berkat Sandro Keil , runcing & unional
tsconfig.json
Gruntfile.js
sumber
Punya masalah yang sama dengan naskah dan
aws-sdk
. Pemecahannya adalah mengubah target menjadies6
.tsconfig.json
File lengkap saya :sumber
Saya memiliki masalah yang sama sampai saya menambahkan lib array berikut di typeScript 3.0.1
tsconfig.json
sumber
Yah, ini mungkin kontra-intuitif tetapi saya menyelesaikan ini menambahkan
esnext
ke sayalib
.FIX, seperti yang disarankan oleh kompiler adalah untuk
sumber
Core-js tidak bekerja untuk saya karena menyebabkan masalah lain, namun, hanya menginstal versi terbaru dari
npm i @types/es6-promise --save-dev
menyingkirkan masalah tersebut. Masalah bagi saya berasal dari kompilasi SDK yang menggunakan rxjs. Inilah kesalahan yang saya dapatkan:sumber
Jika Anda menggunakan repositori DefinitelyTyped di proyek Anda, Anda mungkin mengalami masalah baru-baru ini .
Solusi yang layak yang mungkin Anda gunakan (selain menunggu build yang diperbarui dari file definisi atau refactoring kode TS Anda) adalah untuk menentukan versi eksplisit + build untuk core-js typing daripada membiarkan Visual Studio memilih yang terbaru / terbaru . Saya menemukan satu yang tampaknya tidak terpengaruh oleh masalah ini (setidaknya dalam kasus saya), Anda dapat menggunakannya untuk mengganti baris berikut dari file package.jso n Anda:
Dengan yang berikut ini:
Ini memperbaiki masalah saya untuk selamanya. Namun, sangat disarankan untuk menghapus versi eksplisit + referensi pembangunan segera setelah masalah ini dirilis.
Untuk info lebih lanjut tentang masalah ini, Anda juga dapat membaca posting blog yang saya tulis pada topik ini.
sumber
Saya memiliki masalah yang sama dan ini menyelamatkan saya dari masalah di detik:
tulis di konsol ini:
dalam file di mana masalahnya adalah salin tempel ini:
sumber
Ubah saja target menjadi "ES2017" dalam file tsconfig.json.
ini adalah file tsconfig.json saya
sumber
npm i --save-dev @ types / es6-janji
setelah perintah, Anda sebaiknya memeriksa tsconfig.json memastikan "target" harus lebih dari "es6". mungkin tsc belum mendukung es5.
sumber
Tidak ada jawaban yang dipilih di sini yang berfungsi untuk saya. Berikut ini adalah solusi yang dijamin dan masuk akal. Letakkan ini di dekat bagian atas file kode apa pun yang menggunakan Janji ...
sumber
Setelah menghabiskan banyak waktu mencoba untuk memperbaikinya. Saya tidak beruntung dengan solusi yang diberikan di sini atau di tempat lain.
Tetapi kemudian menyadari bahwa itu bukan hanya sekedar menyelesaikan masalah. Tetapi Anda juga perlu MEMULAI kembali VSCODE agar dapat memengaruhi.
sumber
Saya memiliki kesalahan yang sama dan saya memperbaikinya dengan konfigurasi ini:
File: tsconfig.json
sumber
Perlu diketahui bahwa jika Anda menjalankan perintah tsc dengan nama file yaitu:
maka file konfigurasi compiler tsconfig.json diabaikan. Solusinya adalah dengan menjalankan perintah tsc sendiri, dalam hal ini semua file .ts di direktori akan dikompilasi, kecuali Anda telah mengedit tsconfig.json untuk memasukkan sekumpulan file.
lihat 'menggunakan properti file' ... https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
sumber
Kesalahan yang sama di sini. Saya memperbaikinya, menggunakan "modul": "ES6" di tsconfig.
sumber
Saya menyingkirkan kesalahan yang sama
index.ts
dengan properti gabungan ini:Di tsconfig.json:
Dan di package.json:
sumber