यह उत्तर उन लोगों के लिए फायदेमंद होगा जो npm पैकेज पर भरोसा करते हैं ts-node
।
मैं अनुरोध वस्तु के विस्तार की इसी चिंता से भी जूझ रहा था , मैंने स्टैक-ओवरफ्लो में कई उत्तरों का पालन किया और नीचे दी गई रणनीति का पालन करके समाप्त हुआ।
मैंने निम्नलिखित निर्देशिका में एक्सप्रेस के लिए विस्तारित टाइपिंग की घोषणा की ।${PROJECT_ROOT}/api/@types/express/index.d.ts
declare namespace Express {
interface Request {
decoded?: any;
}
}
तो मेरे tsconfig.json
इस तरह से कुछ करने के लिए अद्यतन ।
{
"compilerOptions": {
"typeRoots": ["api/@types", "node_modules/@types"]
...
}
}
उपरोक्त चरणों को करने के बाद भी, दृश्य स्टूडियो ने शिकायत करना बंद कर दिया, लेकिन दुर्भाग्य से, ts-node
संकलक अभी भी फेंक दिया करता था।
Property 'decoded' does not exist on type 'Request'.
जाहिर है, अनुरोध वस्तु के ts-node
लिए विस्तारित प्रकार की परिभाषा का पता लगाने में सक्षम नहीं था ।
आखिरकार, घंटों बिताने के बाद, जैसा कि मुझे पता था कि वीएस कोड शिकायत नहीं कर रहा था और टाइपिंग परिभाषाओं का पता लगाने में सक्षम था, जिसका अर्थ है कि कुछ गलत है ts-node
।
मेरे लिए इसे शुरू करने script
में अद्यतन करना package.json
।
"start": "ts-node --files api/index.ts",
--files
तर्क यहाँ एक महत्वपूर्ण भूमिका निभाते कस्टम प्रकार परिभाषाएं निर्धारित करने लगता है।
अधिक जानकारी के लिए कृपया देखें: https://github.com/TypeStrong/ts-node#help-my-types-are-missing