Jawaban ini akan bermanfaat bagi mereka yang mengandalkan paket npm ts-node
.
Saya juga bergumul dengan perhatian yang sama dalam menyampaikan permintaan objek , saya mengikuti banyak jawaban di stack-overflow & diakhiri dengan mengikuti strategi yang disebutkan di bawah ini.
Saya menyatakan pengetikan diperpanjang untuk express di direktori berikut.${PROJECT_ROOT}/api/@types/express/index.d.ts
declare namespace Express {
interface Request {
decoded?: any;
}
}
kemudian memperbarui saya tsconfig.json
ke sesuatu seperti ini.
{
"compilerOptions": {
"typeRoots": ["api/@types", "node_modules/@types"]
...
}
}
bahkan setelah melakukan langkah-langkah di atas, studio visual berhenti mengeluh, tetapi sayangnya, ts-node
compiler masih digunakan untuk membuang.
Property 'decoded' does not exist on type 'Request'.
Rupanya, ts-node
tidak dapat menemukan definisi tipe yang diperluas untuk permintaan objek .
Akhirnya setelah menghabiskan berjam-jam, karena saya tahu VS Code tidak mengeluh & dapat menemukan definisi pengetikan, menyiratkan ada yang salah dengan ts-node
complier.
Memperbarui mulai script
dalam package.json
memperbaikinya untuk saya.
"start": "ts-node --files api/index.ts",
yang --files
argumen memainkan peran kunci di sini menemukan menentukan definisi jenis kustom.
Untuk informasi lebih lanjut, kunjungi: https://github.com/TypeStrong/ts-node#help-my-types-are-missing