Type-safe کردن متغیرهای محیطی در TypeScript

دسته‌بندی:
  • برنامه‌نویسی

آخرین ویرایش:۴ دی ۱۴۰۴

معمولاً در پروژه‌های Node.js و TypeScript اطلاعات حساسی مثل آدرس API، نام کاربری، رمز عبور و … نباید مستقیماً داخل کد نوشته بشه و برای جلوگیری از این کار از متغیرهای محیطی (Environment Variables) استفاده می‌کنیم؛

اما مشکلی که وجود داره اینه که ادیتور یا IDE اون رو پیشنهاد نمیده و موقع استفاده ازشون توی کد باید مراقب باشیم که اون‌ها رو اشتباه ننویسیم و دائم چک کنیم که چجوری نوشته می‌شدن! process.env.API_URL یا process.env.API یا process.env.API_BASE_URL بالاخره کدومشون؟!

 

معرفی مقادیر محیطی (env) به تایپ‌اسکریپت#

فرض کنید مقادیر زیر رو داخل فایل .env داریم:

.env
1API_URL = "api.example.com"
2USERNAME = "abcd"
3PASSWORD = "12345"

کافیه یک فایل با نام env.d.ts توی پروژه بسازیم و بصورت زیر، کلیدهای فایل .env رو درون اینترفیس ProcessEnv معرفی کنیم:

env.d.ts
1declare global {
2  namespace NodeJS {
3    interface ProcessEnv {
4      API_URL?: string;
5      USERNAME?: string;
6      PASSWORD?: string;
7    }
8  }
9}
10
11export {};

(دقت کنید که خط آخر حتما باید وجود داشته باشه)

 

حالا می‌بینیم که ادیتور ما اون مقادیر رو بهمون پیشنهاد میده:

process.env in typescript
تگ:
  • TypeScript
عــلــی شـــریـعـتـیـان
عــلــی شـــریـعـتـیـان
فرانت‌اند دولوپر
console.log(
"Looking to build something awesome?"
);
console.log(
"I’m a Front-end developer, and I’d love to help."
);