Node.js में TypeScript के लिए प्रयोगात्मक सपोर्ट जोड़ा गया
(github.com/nodejs)मॉड्यूल: --experimental-strip-types जोड़ा गया
-
Node.js में TypeScript फ़ाइलें चलाना संभव
--experimental-strip-typesफ़्लैग सेट करने पर TypeScript फ़ाइलें चलाई जा सकती हैं- Node.js, TypeScript source code को JavaScript source code में बदल देता है
- रूपांतरण के दौरान type check नहीं किया जाता, और types हटा दिए जाते हैं
-
प्रेरणा
- TypeScript फ़ाइलों को बिना external dependency या loader के चलाने योग्य बनाना महत्वपूर्ण है
- उपयोगकर्ता
node foo.tsचला सकें, यह लक्ष्य है
-
type stripping का मतलब
- type stripping का अर्थ है सभी types हटाकर input को JavaScript module में बदलना
- उदाहरण:
const foo: string = "foo";कोconst foo = "foo";में बदला जाता है
-
@swc/wasm-typescriptचुनने का कारण- इसकी सादगी
- दूसरे tools में Rust या Go जोड़ना पड़ता है, लेकिन
@swc/wasm-typescriptके लिए सिर्फ़ छोटा package, wasm और js फ़ाइलें चाहिए - Deno में भी इस्तेमाल होने के कारण इस पर भरोसा किया जा सकता है
-
सीमाएँ
- Enum, namespace जैसे TypeScript-विशिष्ट फीचर transform नहीं होते
- extension के बिना import सपोर्ट नहीं है
-
आगे की योजना
- इसे native layer में लागू किए जाने की संभावना है
- source map support जोड़ा जा सकता है
GN⁺ का सार
- यह Node.js में TypeScript फ़ाइलें चलाने योग्य बनाने वाली नई सुविधा के बारे में बताता है
- TypeScript फ़ाइलों को JavaScript में बदलकर चलाया जा सकता है, लेकिन type check नहीं होता
- इससे उपयोगकर्ता बिना external dependency के TypeScript फ़ाइलें चला सकते हैं, जिससे development environment सरल होता है
- यह फीचर
@swc/wasm-typescriptका उपयोग करके लागू किया गया है, और भविष्य में native layer implementation पर भी विचार हो रहा है - यह TypeScript और JavaScript को मिलाकर इस्तेमाल करने वाले projects के लिए उपयोगी हो सकता है
1 टिप्पणियां
Hacker News की राय
TypeScript के type हटाना, TypeScript के syntax के बिना संभव नहीं है। type removal token-level का काम नहीं है, और TypeScript syntax लगातार बदलता रहा है
foo < bar & baz > ( x )को TypeScript 1.5 में अलग तरह से interpret किया जाता थाअगर Node.js सीधे TypeScript files चला सके, तो TypeScript compiler को type हटाकर JavaScript में बदलने की ज़रूरत नहीं होगी
अगर यह feature default बन जाए, तो NPM ecosystem कैसे प्रतिक्रिया देगा, यह जानने की जिज्ञासा है
engine: nodejs >= 25को package.json में जोड़कर build step छोड़ देंगे, यह सोचने वाली बात है.tsfiles स्वीकार करे, तो transpilation step हटाया जा सकता हैअगर Node, JS में types को inspect कर सके, तो यह बड़ा फ़ायदा होगा
Bun का developer experience (DX) इस क्षेत्र में बेजोड़ है, और ज़्यादातर use cases पूरे हो जाते हैं
.jsextension अपने-आप जोड़ने के लिए भी configure नहीं किया जा सकताTypeScript मुझे बहुत पसंद है और मैं लंबे समय से TypeScript runtime चाहता रहा हूँ
मेरी पसंदीदा deno feature अब सीधे Node में आ रही है
Node के लिए यह बहुत महत्वपूर्ण महीना रहा है
node:sqliteजोड़ा गया, और अब TypeScript support भी आ रहा हैमैं ही PR का लेखक हूँ, AMA
बहुत पहले मैंने backend काम के लिए Node.js इस्तेमाल करना शुरू किया था, और यह PHP की तुलना में कई फ़ायदे देता था