தமிழ்

டைப்ஸ்கிரிப்ட் இன்டர்ஃபேஸ்கள் மற்றும் டைப்களுக்கான ஒரு விரிவான வழிகாட்டி. இது அவற்றின் வேறுபாடுகள், பயன்பாடுகள் மற்றும் உலகளவில் பராமரிக்கக்கூடிய மற்றும் விரிவாக்கக்கூடிய பயன்பாடுகளை உருவாக்குவதற்கான சிறந்த நடைமுறைகளை ஆராய்கிறது.

டைப்ஸ்கிரிப்ட் இன்டர்ஃபேஸ் மற்றும் டைப்: உலகளாவிய டெவலப்பர்களுக்கான சிறந்த அறிவிப்பு நடைமுறைகள்

டைப்ஸ்கிரிப்ட், ஜாவாஸ்கிரிப்டின் ஒரு சூப்பர்செட், உலகெங்கிலும் உள்ள டெவலப்பர்களுக்கு ஸ்டேடிக் டைப்பிங் மூலம் வலுவான மற்றும் விரிவாக்கக்கூடிய பயன்பாடுகளை உருவாக்க அதிகாரம் அளிக்கிறது. டைப்களை வரையறுப்பதற்கான இரண்டு அடிப்படைக் கட்டமைப்புகள் இன்டர்ஃபேஸ்கள் (Interfaces) மற்றும் டைப்கள் (Types) ஆகும். அவற்றுக்கிடையே ஒற்றுமைகள் இருந்தாலும், அவற்றின் நுணுக்கங்களையும் பொருத்தமான பயன்பாட்டு வழக்குகளையும் புரிந்துகொள்வது சுத்தமான, பராமரிக்கக்கூடிய மற்றும் திறமையான குறியீட்டை எழுத மிகவும் முக்கியமானது. இந்த விரிவான வழிகாட்டி டைப்ஸ்கிரிப்ட் இன்டர்ஃபேஸ்கள் மற்றும் டைப்களுக்கு இடையிலான வேறுபாடுகளை ஆராய்ந்து, அவற்றை உங்கள் திட்டங்களில் திறம்பட பயன்படுத்துவதற்கான சிறந்த நடைமுறைகளை விவரிக்கும்.

டைப்ஸ்கிரிப்ட் இன்டர்ஃபேஸ்களைப் புரிந்துகொள்ளுதல்

டைப்ஸ்கிரிப்டில் ஒரு இன்டர்ஃபேஸ் (Interface) என்பது ஒரு ஆப்ஜெக்ட்டிற்கான ஒப்பந்தத்தை வரையறுப்பதற்கான ஒரு சக்திவாய்ந்த வழியாகும். இது ஒரு ஆப்ஜெக்ட்டின் வடிவத்தை கோடிட்டுக் காட்டுகிறது, அது கொண்டிருக்க வேண்டிய பண்புகள், அவற்றின் தரவு வகைகள் மற்றும் விருப்பமாக, அது செயல்படுத்த வேண்டிய எந்தவொரு மெத்தட்களையும் குறிப்பிடுகிறது. இன்டர்ஃபேஸ்கள் முதன்மையாக ஆப்ஜெக்ட்களின் கட்டமைப்பை விவரிக்கின்றன.

இன்டர்ஃபேஸ் சிண்டாக்ஸ் மற்றும் எடுத்துக்காட்டு

ஒரு இன்டர்ஃபேஸை வரையறுப்பதற்கான சிண்டாக்ஸ் நேரடியானது:


interface User {
  id: number;
  name: string;
  email: string;
  isActive: boolean;
}

const user: User = {
  id: 123,
  name: "Alice Smith",
  email: "alice.smith@example.com",
  isActive: true,
};

இந்த எடுத்துக்காட்டில், User இன்டர்ஃபேஸ் ஒரு பயனர் ஆப்ஜெக்ட்டின் கட்டமைப்பை வரையறுக்கிறது. user வேரியபிளுக்கு ஒதுக்கப்படும் எந்தவொரு ஆப்ஜெக்ட்டும் இந்த அமைப்புக்கு இணங்க வேண்டும்; இல்லையெனில், டைப்ஸ்கிரிப்ட் கம்பைலர் ஒரு பிழையை எழுப்பும்.

இன்டர்ஃபேஸ்களின் முக்கிய அம்சங்கள்

அறிவிப்பு ஒன்றிணைத்தல் எடுத்துக்காட்டு


interface Window {
  title: string;
}

interface Window {
  height: number;
  width: number;
}

const myWindow: Window = {
  title: "My Application",
  height: 800,
  width: 600,
};

இங்கே, Window இன்டர்ஃபேஸ் இரண்டு முறை அறிவிக்கப்பட்டுள்ளது. டைப்ஸ்கிரிப்ட் இந்த அறிவிப்புகளை ஒன்றிணைக்கிறது, இதன் மூலம் title, height, மற்றும் width பண்புகளுடன் ஒரு இன்டர்ஃபேஸை திறம்பட உருவாக்குகிறது.

டைப்ஸ்கிரிப்ட் டைப்களை ஆராய்தல்

டைப்ஸ்கிரிப்டில் ஒரு டைப் (Type) என்பது தரவின் வடிவத்தை வரையறுப்பதற்கான ஒரு வழியை வழங்குகிறது. இன்டர்ஃபேஸ்களைப் போலல்லாமல், டைப்கள் மிகவும் பல்துறை வாய்ந்தவை மற்றும் ப்ரிமிட்டிவ் டைப்கள், யூனியன்கள், இன்டர்செக்ஷன்கள் மற்றும் டப்பிள்கள் உள்ளிட்ட பரந்த அளவிலான தரவு கட்டமைப்புகளைக் குறிக்க முடியும்.

டைப் சிண்டாக்ஸ் மற்றும் எடுத்துக்காட்டு

ஒரு டைப் அலைஸை (alias) வரையறுப்பதற்கான சிண்டாக்ஸ் பின்வருமாறு:


type Point = {
  x: number;
  y: number;
};

const origin: Point = {
  x: 0,
  y: 0,
};

இந்த எடுத்துக்காட்டில், Point டைப், x மற்றும் y கோஆர்டினேட்களுடன் ஒரு பாயிண்ட் ஆப்ஜெக்ட்டின் கட்டமைப்பை வரையறுக்கிறது.

டைப்களின் முக்கிய அம்சங்கள்

யூனியன் டைப் எடுத்துக்காட்டு


type Result = {
  success: true;
  data: any;
} | {
  success: false;
  error: string;
};

const successResult: Result = {
  success: true,
  data: { message: "Operation successful!" },
};

const errorResult: Result = {
  success: false,
  error: "An error occurred.",
};

Result டைப் என்பது ஒரு யூனியன் டைப் ஆகும், இது தரவுகளுடன் கூடிய வெற்றியாகவோ அல்லது பிழைச் செய்தியுடன் கூடிய தோல்வியாகவோ இருக்கலாம். வெற்றிபெறக்கூடிய அல்லது தோல்வியடையக்கூடிய செயல்பாடுகளின் விளைவைக் குறிக்க இது பயனுள்ளதாக இருக்கும்.

இன்டர்செக்ஷன் டைப் எடுத்துக்காட்டு


type Person = {
  name: string;
  age: number;
};

type Employee = {
  employeeId: string;
  department: string;
};

type EmployeePerson = Person & Employee;

const employee: EmployeePerson = {
  name: "Bob Johnson",
  age: 35,
  employeeId: "EMP123",
  department: "Engineering",
};

EmployeePerson டைப் ஒரு இன்டர்செக்ஷன் டைப் ஆகும், இது Person மற்றும் Employee இரண்டின் பண்புகளையும் இணைக்கிறது. ஏற்கனவே உள்ள டைப்களை இணைப்பதன் மூலம் புதிய டைப்களை உருவாக்க இது உங்களை அனுமதிக்கிறது.

முக்கிய வேறுபாடுகள்: இன்டர்ஃபேஸ் மற்றும் டைப்

டைப்ஸ்கிரிப்டில் தரவு கட்டமைப்புகளை வரையறுக்கும் நோக்கத்திற்காக இன்டர்ஃபேஸ்கள் மற்றும் டைப்கள் இரண்டும் பயன்பட்டாலும், ஒன்றிற்குப் பதிலாக மற்றொன்றை எப்போது பயன்படுத்த வேண்டும் என்பதைப் பாதிக்கும் முக்கிய வேறுபாடுகள் உள்ளன:

  1. அறிவிப்பு ஒன்றிணைத்தல்: இன்டர்ஃபேஸ்கள் அறிவிப்பு ஒன்றிணைத்தலை ஆதரிக்கின்றன, ஆனால் டைப்கள் ஆதரிக்காது. நீங்கள் பல கோப்புகள் அல்லது மாட்யூல்களில் ஒரு டைப் வரையறையை நீட்டிக்க வேண்டுமானால், இன்டர்ஃபேஸ்கள் பொதுவாக விரும்பப்படுகின்றன.
  2. யூனியன் டைப்கள்: டைப்கள் யூனியன் டைப்களைக் குறிக்கலாம், ஆனால் இன்டர்ஃபேஸ்கள் நேரடியாக யூனியன்களை வரையறுக்க முடியாது. பல வேறுபட்ட டைப்களில் ஒன்றாக இருக்கக்கூடிய ஒரு டைப்பை நீங்கள் வரையறுக்க வேண்டுமானால், ஒரு டைப் அலைஸைப் பயன்படுத்தவும்.
  3. இன்டர்செக்ஷன் டைப்கள்: டைப்கள் & ஆபரேட்டரைப் பயன்படுத்தி இன்டர்செக்ஷன் டைப்களை உருவாக்கலாம். இன்டர்ஃபேஸ்கள் மற்ற இன்டர்ஃபேஸ்களை நீட்டிக்க முடியும், இதே போன்ற விளைவை அடையலாம், ஆனால் இன்டர்செக்ஷன் டைப்கள் அதிக நெகிழ்வுத்தன்மையை வழங்குகின்றன.
  4. ப்ரிமிட்டிவ் டைப்கள்: டைப்கள் ப்ரிமிட்டிவ் டைப்களை (string, number, boolean) நேரடியாகக் குறிக்க முடியும், அதேசமயம் இன்டர்ஃபேஸ்கள் முதன்மையாக ஆப்ஜெக்ட் வடிவங்களை வரையறுக்க வடிவமைக்கப்பட்டுள்ளன.
  5. பிழைச் செய்திகள்: சில டெவலப்பர்கள், குறிப்பாக சிக்கலான டைப் கட்டமைப்புகளைக் கையாளும்போது, டைப்களை விட இன்டர்ஃபேஸ்கள் சற்று தெளிவான பிழைச் செய்திகளை வழங்குவதாகக் காண்கிறார்கள்.

சிறந்த நடைமுறைகள்: இன்டர்ஃபேஸ் மற்றும் டைப் இடையே தேர்ந்தெடுத்தல்

இன்டர்ஃபேஸ்கள் மற்றும் டைப்களுக்கு இடையில் தேர்ந்தெடுப்பது உங்கள் திட்டத்தின் குறிப்பிட்ட தேவைகள் மற்றும் உங்கள் தனிப்பட்ட விருப்பங்களைப் பொறுத்தது. கருத்தில் கொள்ள வேண்டிய சில பொதுவான வழிகாட்டுதல்கள் இங்கே:

நடைமுறை எடுத்துக்காட்டுகள்: உலகளாவிய பயன்பாட்டுக் காட்சிகள்

உலகளாவிய பயன்பாட்டில் இன்டர்ஃபேஸ்கள் மற்றும் டைப்களை எவ்வாறு பயன்படுத்தலாம் என்பதை விளக்க சில நடைமுறை எடுத்துக்காட்டுகளைப் பார்ப்போம்:

1. பயனர் சுயவிவர மேலாண்மை (சர்வதேசமயமாக்கல்)

பல மொழிகளை ஆதரிக்கும் ஒரு பயனர் சுயவிவர மேலாண்மை அமைப்பை நீங்கள் உருவாக்குகிறீர்கள் என்று வைத்துக்கொள்வோம். பயனர் சுயவிவரங்களின் கட்டமைப்பை வரையறுக்க இன்டர்ஃபேஸ்களையும், வெவ்வேறு மொழி குறியீடுகளைக் குறிக்க டைப்களையும் பயன்படுத்தலாம்:


interface UserProfile {
  id: number;
  name: string;
  email: string;
  preferredLanguage: LanguageCode;
  address: Address;
}

interface Address {
    street: string;
    city: string;
    country: string;
    postalCode: string;
}

type LanguageCode = "en" | "fr" | "es" | "de" | "zh"; // எடுத்துக்காட்டு மொழி குறியீடுகள்

const userProfile: UserProfile = {
  id: 1,
  name: "John Doe",
  email: "john.doe@example.com",
  preferredLanguage: "en",
  address: { street: "123 Main St", city: "Anytown", country: "USA", postalCode: "12345" }
};

இங்கே, UserProfile இன்டர்ஃபேஸ் ஒரு பயனர் சுயவிவரத்தின் கட்டமைப்பை வரையறுக்கிறது, இதில் அவர்கள் விரும்பும் மொழியும் அடங்கும். LanguageCode டைப் என்பது ஆதரிக்கப்படும் மொழிகளைக் குறிக்கும் ஒரு யூனியன் டைப் ஆகும். Address இன்டர்ஃபேஸ், ஒரு பொதுவான உலகளாவிய வடிவமைப்பைக் கருதி, முகவரி வடிவமைப்பை வரையறுக்கிறது.

2. நாணய மாற்றம் (உலகமயமாக்கல்)

வெவ்வேறு நாணயங்களையும் மாற்று விகிதங்களையும் கையாள வேண்டிய ஒரு நாணய மாற்று பயன்பாட்டைக் கவனியுங்கள். நாணய ஆப்ஜெக்ட்களின் கட்டமைப்பை வரையறுக்க இன்டர்ஃபேஸ்களையும், நாணயக் குறியீடுகளைக் குறிக்க டைப்களையும் பயன்படுத்தலாம்:


interface Currency {
  code: CurrencyCode;
  name: string;
  symbol: string;
}

interface ExchangeRate {
  baseCurrency: CurrencyCode;
  targetCurrency: CurrencyCode;
  rate: number;
}


type CurrencyCode = "USD" | "EUR" | "GBP" | "JPY" | "CAD"; // எடுத்துக்காட்டு நாணயக் குறியீடுகள்

const usd: Currency = {
  code: "USD",
  name: "United States Dollar",
  symbol: "$",
};

const exchangeRate: ExchangeRate = {
  baseCurrency: "USD",
  targetCurrency: "EUR",
  rate: 0.85,
};

Currency இன்டர்ஃபேஸ் ஒரு நாணய ஆப்ஜெக்ட்டின் கட்டமைப்பை வரையறுக்கிறது, அதில் அதன் குறியீடு, பெயர் மற்றும் சின்னம் ஆகியவை அடங்கும். CurrencyCode டைப் என்பது ஆதரிக்கப்படும் நாணயக் குறியீடுகளைக் குறிக்கும் ஒரு யூனியன் டைப் ஆகும். ExchangeRate இன்டர்ஃபேஸ் வெவ்வேறு நாணயங்களுக்கு இடையிலான மாற்று விகிதங்களைக் குறிக்கப் பயன்படுகிறது.

3. தரவு சரிபார்ப்பு (சர்வதேச வடிவம்)

பல்வேறு நாடுகளில் உள்ள பயனர்களிடமிருந்து தரவு உள்ளீட்டைக் கையாளும்போது, சரியான சர்வதேச வடிவத்திற்கு ஏற்ப தரவைச் சரிபார்ப்பது முக்கியம். எடுத்துக்காட்டாக, தொலைபேசி எண்கள் நாட்டின் குறியீட்டைப் பொறுத்து வெவ்வேறு வடிவங்களைக் கொண்டுள்ளன. மாறுபாடுகளைக் குறிக்க டைப்களைப் பயன்படுத்தலாம்.


type PhoneNumber = {
  countryCode: string;
  number: string;
  isValid: boolean; // செல்லுபடியாகும்/செல்லுபடியாகாத தரவைக் குறிக்க ஒரு பூலியனைச் சேர்க்கவும்.
};

interface Contact {
   name: string;
   phoneNumber: PhoneNumber;
   email: string;
}


function validatePhoneNumber(phoneNumber: string, countryCode: string): PhoneNumber {
  // countryCode அடிப்படையில் சரிபார்ப்பு தர்க்கம் (எ.கா., libphonenumber-js போன்ற லைப்ரரியைப் பயன்படுத்தி)
  // ... எண்ணைச் சரிபார்க்க இங்கே செயலாக்கம்.
  const isValid = true; //இடம்தாள்வி

  return { countryCode, number: phoneNumber, isValid };
}

const contact: Contact = {
    name: "Jane Doe",
    phoneNumber: validatePhoneNumber("555-123-4567", "US"), //எடுத்துக்காட்டு
    email: "jane.doe@email.com",
};


console.log(contact.phoneNumber.isValid); //வெளியீட்டு சரிபார்ப்பு.

முடிவுரை: டைப்ஸ்கிரிப்ட் அறிவிப்புகளில் தேர்ச்சி பெறுதல்

டைப்ஸ்கிரிப்ட் இன்டர்ஃபேஸ்கள் மற்றும் டைப்கள் தரவு கட்டமைப்புகளை வரையறுப்பதற்கும் குறியீட்டின் தரத்தை மேம்படுத்துவதற்கும் சக்திவாய்ந்த கருவிகளாகும். அவற்றின் வேறுபாடுகளைப் புரிந்துகொண்டு அவற்றை திறம்பட பயன்படுத்துவது வலுவான, பராமரிக்கக்கூடிய மற்றும் விரிவாக்கக்கூடிய பயன்பாடுகளை உருவாக்குவதற்கு அவசியமானது. இந்த வழிகாட்டியில் கோடிட்டுக் காட்டப்பட்டுள்ள சிறந்த நடைமுறைகளைப் பின்பற்றுவதன் மூலம், இன்டர்ஃபேஸ்கள் மற்றும் டைப்களை எப்போது பயன்படுத்த வேண்டும் என்பது குறித்து தகவலறிந்த முடிவுகளை எடுக்கலாம், இறுதியில் உங்கள் டைப்ஸ்கிரிப்ட் மேம்பாட்டுப் பணிப்பாய்வுகளை மேம்படுத்தி, உங்கள் திட்டங்களின் வெற்றிக்கு பங்களிக்கலாம்.

இன்டர்ஃபேஸ்கள் மற்றும் டைப்களுக்கு இடையேயான தேர்வு பெரும்பாலும் தனிப்பட்ட விருப்பம் மற்றும் திட்டத் தேவைகளைப் பொறுத்தது என்பதை நினைவில் கொள்ளுங்கள். உங்களுக்கும் உங்கள் குழுவிற்கும் எது சிறந்தது என்பதைக் கண்டறிய இரு அணுகுமுறைகளையும் பரிசோதித்துப் பாருங்கள். டைப்ஸ்கிரிப்டின் டைப் அமைப்பின் சக்தியை ஏற்றுக்கொள்வது சந்தேகத்திற்கு இடமின்றி மேலும் நம்பகமான மற்றும் பராமரிக்கக்கூடிய குறியீட்டிற்கு வழிவகுக்கும், இது உலகெங்கிலும் உள்ள டெவலப்பர்களுக்கு பயனளிக்கும்.