در جلسات قبل با مفهوم TypeScript و نحوه نصب و راهاندازی آن آشنا شدیم. اما یکی از مهمترین بخشهای کار با TypeScript فرآیند کامپایل (Compile) کردن کدهای TypeScript به JavaScript است.
از آنجا که مرورگرها و محیط Node.js به صورت مستقیم TypeScript را اجرا نمیکنند، باید کدهای نوشته شده در فایلهای .ts ابتدا به JavaScript تبدیل شوند. این کار توسط TypeScript Compiler انجام میشود.
در این جلسه با نحوه کامپایل TypeScript و همچنین تنظیمات مهم فایل tsconfig.json آشنا میشویم.
کامپایل TypeScript چیست؟
کامپایل در TypeScript به معنای تبدیل کدهای TypeScript به JavaScript است. این فرآیند توسط ابزاری به نام tsc (TypeScript Compiler) انجام میشود.
به زبان ساده روند کار به شکل زیر است:
- نوشتن کد در فایلهای
.ts - بررسی خطاهای تایپی توسط TypeScript
- تبدیل کد به JavaScript
- اجرای فایل JavaScript در مرورگر یا Node.js
این فرآیند باعث میشود قبل از اجرای برنامه بسیاری از خطاهای احتمالی شناسایی شوند.
کامپایل یک فایل TypeScript
فرض کنید فایل زیر را داریم:
const username: string = "Ali";
function greet(name: string): string {
return "Hello " + name;
}
console.log(greet(username));نام فایل:
index.tsبرای تبدیل این فایل به JavaScript کافی است دستور زیر را اجرا کنیم:
tsc index.tsبعد از اجرای دستور، فایل زیر ساخته میشود:
index.jsمحتوای فایل خروجی:
var username = "Ali";
function greet(name) {
return "Hello " + name;
}
console.log(greet(username));کامپایل کل پروژه TypeScript
در پروژههای واقعی معمولاً چندین فایل TypeScript داریم. برای مدیریت بهتر این فایلها از tsconfig.json استفاده میشود.
اگر قبلاً این فایل را نساختهاید، با دستور زیر آن را ایجاد کنید:
tsc --initبعد از ایجاد فایل، برای کامپایل کل پروژه فقط کافی است دستور زیر را اجرا کنید:
tscTypeScript تمام فایلهای .ts موجود در پروژه را کامپایل میکند.
فایل tsconfig.json چیست؟
فایل tsconfig.json مهمترین فایل تنظیمات در پروژههای TypeScript است. این فایل مشخص میکند:
- کدام فایلها کامپایل شوند
- خروجی JavaScript در چه مسیری قرار بگیرد
- نسخه JavaScript خروجی چه باشد
- قوانین تایپ چگونه اعمال شوند
نمونه یک فایل tsconfig ساده:
{
"compilerOptions": {
"target": "ES6",
"module": "CommonJS",
"rootDir": "./src",
"outDir": "./dist",
"strict": true
}
}مهمترین تنظیمات tsconfig.json
در ادامه چند گزینه بسیار مهم در این فایل را بررسی میکنیم.
target
مشخص میکند خروجی JavaScript برای چه نسخهای از ECMAScript تولید شود.
مثال:
"target": "ES6"یا
"target": "ESNext"هرچه نسخه جدیدتر باشد، کد مدرنتری تولید میشود.
module
نوع سیستم ماژولبندی را مشخص میکند.
نمونهها:
"module": "CommonJS"برای Node.js
یا
"module": "ESNext"برای پروژههای مدرن فرانتاند.
rootDir
مسیر فایلهای TypeScript را مشخص میکند.
"rootDir": "./src"یعنی تمام فایلهای .ts داخل پوشه src قرار دارند.
outDir
محل ذخیره فایلهای JavaScript خروجی را مشخص میکند.
"outDir": "./dist"در این حالت فایلهای کامپایلشده در پوشه dist قرار میگیرند.
strict
حالت strict mode را فعال میکند.
"strict": trueبا فعال بودن این گزینه، TypeScript بررسیهای دقیقتری انجام میدهد و بسیاری از خطاهای احتمالی را زودتر تشخیص میدهد.
در پروژههای واقعی توصیه میشود همیشه این گزینه فعال باشد.
include و exclude
برای مشخص کردن فایلهایی که باید کامپایل شوند استفاده میشوند.
مثال:
{
"include": ["src"],
"exclude": ["node_modules"]
}در این حالت فقط فایلهای داخل src کامپایل میشوند.
کامپایل خودکار با Watch Mode
اگر نمیخواهید هر بار دستی پروژه را کامپایل کنید، میتوانید از watch mode استفاده کنید.
tsc --watchدر این حالت هر تغییری در فایلهای TypeScript به صورت خودکار کامپایل میشود.
این روش در زمان توسعه بسیار کاربردی است.
جمعبندی
در این جلسه با نحوه کامپایل TypeScript به JavaScript آشنا شدیم و دیدیم که چگونه ابزار tsc کدهای TypeScript را به JavaScript تبدیل میکند.
همچنین با فایل مهم tsconfig.json و تنظیمات کلیدی آن مانند target، module، rootDir و outDir آشنا شدیم.
دسترسی به ویدیوهای کامل دوره
برای مشاهده ویدیوهای کامل هر جلسه، دریافت تمرینها، فایلها و پشتیبانی، میتوانید دوره کامل را تهیه کنید.