ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า
ระบุชนิด process.env ด้วยโมดูลการกำหนดค่าที่ผ่านการตรวจสอบ
ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า เป็นบทเรียน TypeScript Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน TypeScript Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
ยินดีต้อนรับ
ปัญหา
const port = process.env.PORT; // string | undefined
// server.listen(port); // could be undefined!การเพิ่มส่วนขยายโมดูลสำหรับ process.env
declare global {
namespace NodeJS {
interface ProcessEnv {
PORT: string;
DATABASE_URL: string;
NODE_ENV: 'development' | 'staging' | 'production';
}
}
}รูปแบบโมดูลการกำหนดค่า
function requireEnv(key: string): string {
const val = process.env[key];
if (!val) throw new Error(`Missing env var: ${key}`);
return val;
}
export const config = {
port: parseInt(requireEnv('PORT')),
dbUrl: requireEnv('DATABASE_URL'),
};การตรวจสอบตัวแปรสภาพแวดล้อมด้วย Zod
import { z } from 'zod';
const envSchema = z.object({
PORT: z.string().transform(Number),
DATABASE_URL: z.string().url(),
NODE_ENV: z.enum(['development', 'production']),
});
export const env = envSchema.parse(process.env);dotenv กับ TypeScript
import 'dotenv/config';
// Or:
import dotenv from 'dotenv';
dotenv.config();การเข้าถึง env อย่างเคร่งครัด
การกำหนดค่าสำหรับสภาพแวดล้อมที่แตกต่างกัน
const envFile = `.env.${process.env.NODE_ENV ?? 'development'}`;
dotenv.config({ path: envFile });การปกปิดข้อมูลลับในบันทึก
console.log({ ...config, dbPassword: '***', apiKey: '***' });แฟล็กคุณลักษณะที่ปลอดภัยด้านชนิด
const flags = {
enableBeta: process.env.ENABLE_BETA === 'true',
logLevel: (process.env.LOG_LEVEL ?? 'info') as 'debug' | 'info' | 'warn',
};การทดสอบด้วยตัวแปรสภาพแวดล้อม
// tests/setup.ts
process.env.DATABASE_URL = 'sqlite:///:memory:';
process.env.NODE_ENV = 'test';ตรวจสอบสั้น ๆ
สรุปทบทวน
คำถามที่พบบ่อย
บทเรียน “ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส TypeScript Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส TypeScript Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า”
ระบุชนิด process.env ด้วยโมดูลการกำหนดค่าที่ผ่านการตรวจสอบ คุณปฏิบัติ TypeScript Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน TypeScript Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน TypeScript Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน
บทเรียน “ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน TypeScript Academy นี้ได้ไหม
ได้ บทเรียน TypeScript Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- การตั้งค่า TypeScript กับ Node.js
- การระบุชนิดคำขอและการตอบกลับของ Express
- มิดเดิลแวร์และตัวจัดการข้อผิดพลาดที่ระบุชนิด
- ตัวแปรสภาพแวดล้อมและการระบุชนิดการกำหนดค่า