ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js v: 組み込みの TypeScript サポートがついに登場

Node.js v: 組み込みの TypeScript サポートがついに登場

Barbara Streisand
Barbara Streisandオリジナル
2025-01-10 07:45:40612ブラウズ

Node.js v: Built-in TypeScript Support is Finally Here

Node.js v23.6.0 が最近リリースされました。これには、--experimental-strip-types のフラグ解除という重要なアップデートが含まれています。これは、Node.js が追加の構成なしで TypeScript ファイルをネイティブに実行できることを意味します。

TypeScript が重要な理由

TypeScript は、オプションの静的型付けや、インターフェイス、ジェネリック、型推論などの高度な機能を導入することで JavaScript を強化します。長年にわたり、これは大規模な JavaScript アプリケーションの事実上の標準になりました。 Node.js へのこの統合により、バックエンド開発者は TypeScript をさらに利用しやすくなります。

Node.js で TypeScript を実行する

Node.js で TypeScript ファイルを実行するには、次のコマンドを実行します。

node index.ts

Node.js は、.ts ファイルに加えて、.mts および .cts ファイルもサポートしていますが、.tsx はサポートされていません。

Node.js が TypeScript を実行する方法

Node.js は、swc のバージョンを使用して型の注釈を取り除き、実行できるプレーンな JavaScript コードを残します。

Node.js で TypeScript を実行する場合の考慮事項

ローカルインポートはTypeScriptファイルを参照する必要がある

バンドラーのない環境で TypeScript を使用する場合、以前に次のようなインポートを記述した可能性があります:

import { myFunction } from './my-module.js';

「./my-module.ts」からではなく

それはなぜですか? TypeScript コンパイラーは「./my-module.js」などのモジュール拡張子を変更しないため、開発者はトランスパイルされた JavaScript 出力に合わせた拡張子を使用する必要がありました。

ただし、Node.js はファイル拡張子を使用してモジュールの種類を決定するため、インポートで TypeScript ファイルを明示的に参照する必要があります。

import { myFunction } from './my-module.ts';

Node.js はファイル拡張子に依存してモジュールの種類を決定するため、この変更が必要です。対照的に、TypeScript コンパイラーは以前、「./my-module.js」などのモジュール指定子を変更しないままにしており、開発者はトランスパイルされた出力に適応する必要がありました。

組み込み型チェックなし

Node.js は、TypeScript ファイルの実行時に型チェックを実行しません。タイプ セーフを確保するには、TypeScript コンパイラー (tsc) または同様のツールをローカルで実行する必要があります。次に例を示します。

tsc --watch

さらに、tsconfig.json を正しく構成することは、型チェックとコーディングの間の一貫性にとって非常に重要です。

node index.ts
  • allowImportingTsExtensions: .js をインポートする代わりに .ts ファイルを直接インポートできるようにします。
  • rewriteRelativeImportExtensions: .ts ファイルからの相対インポートを .js ファイルからの相対インポートに書き換えます。
  • verbatimModuleSyntax: 型をインポートするときに type キーワードを使用しない場合に警告します。

タイプをインポートするには type キーワードを使用する必要があります

型をインポートする場合は、type キーワードが必要です。そうでない場合、型の削除によってそれらは削除されません。

import { myFunction } from './my-module.js';

Node.js で TypeScript を実行する場合の制限事項

JavaScript 以外の言語機能はサポートされません

次のような特定の TypeScript 固有の機能はサポートされていません。

  • 列挙型
  • 名前空間
  • クラス コンストラクターのパラメーター プロパティ

これらの機能を有効にするには、--experimental-transform-types フラグを追加します。

TypeScript によってもたらされる将来の JavaScript 機能はサポートされません

TypeScript を使用すると、今後の JavaScript 機能 (デコレーターなど) をトランスパイルすることで、現在の JavaScript エンジン上で実行できます。

ただし、Node.js は TypeScript 型を削除するだけであるため、そのような機能はサポートされていません。

古い Node.js バージョンでも TypeScript を実行できますか?

Marco on X によると、TypeScript のサポートは Node.js v22 でサポートされる予定ですが、v20 ではサポートされません。

参考文献

  • ノードの TypeScript に対する新しい組み込みサポート
  • Node.js がデフォルトで TypeScript をサポートするようになりました

私たちは Leapcell であり、Node.js プロジェクトをクラウドにデプロイするための最良の選択肢です。

Node.js v: Built-in TypeScript Support is Finally Here

Leapcell は、Web ホスティング、非同期タスク、Redis 用の次世代サーバーレス プラットフォームです:

多言語サポート

  • Node.js、Python、Go、または Rust を使用して開発します。

無制限のプロジェクトを無料でデプロイ

  • 使用料金のみお支払いください。リクエストや料金はかかりません。

比類のないコスト効率

  • アイドル料金なしの従量課金制です。
  • 例: $25 は、平均応答時間 60 ミリ秒で 694 万のリクエストをサポートします。

効率化された開発者エクスペリエンス

  • 直感的な UI でセットアップが簡単です。
  • 完全に自動化された CI/CD パイプラインと GitOps の統合。
  • 実用的な洞察を得るリアルタイムのメトリクスとログ。

簡単な拡張性と高いパフォーマンス

  • 自動スケーリングにより、高い同時実行性を簡単に処理できます。
  • 運用上のオーバーヘッドがゼロ - 構築だけに集中できます。

ドキュメントでさらに詳しく見てみましょう!

Node.js v: Built-in TypeScript Support is Finally Here

X でフォローしてください: @LeapcellHQ


ブログをお読みください

以上がNode.js v: 組み込みの TypeScript サポートがついに登場の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。