ಕನ್ನಡ

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿ. ಅವುಗಳ ವ್ಯತ್ಯಾಸ, ಬಳಕೆಯ ಸಂದರ್ಭಗಳು ಮತ್ತು ಜಾಗತಿಕವಾಗಿ ನಿರ್ವಹಿಸಬಲ್ಲ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ವಿವರಿಸುತ್ತದೆ.

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಟರ್ಫೇಸ್ vs ಟೈಪ್: ಜಾಗತಿಕ ಡೆವಲಪರ್‌ಗಳಿಗೆ ಉತ್ತಮ ಘೋಷಣಾ ಪದ್ಧತಿಗಳು

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್, ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನ ಒಂದು ಸೂಪರ್‌ಸೆಟ್, ಸ್ಟ್ಯಾಟಿಕ್ ಟೈಪಿಂಗ್ ಮೂಲಕ ದೃಢವಾದ ಮತ್ತು ಸ್ಕೇಲೆಬಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ವಿಶ್ವಾದ್ಯಂತ ಡೆವಲಪರ್‌ಗಳಿಗೆ ಅಧಿಕಾರ ನೀಡುತ್ತದೆ. ಟೈಪ್‌ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಎರಡು ಮೂಲಭೂತ ರಚನೆಗಳೆಂದರೆ ಇಂಟರ್ಫೇಸ್‌ಗಳು (Interfaces) ಮತ್ತು ಟೈಪ್‌ಗಳು (Types). ಅವುಗಳು ಸಮಾನತೆಗಳನ್ನು ಹಂಚಿಕೊಂಡರೂ, ಸ್ವಚ್ಛ, ನಿರ್ವಹಿಸಬಲ್ಲ ಮತ್ತು ದಕ್ಷ ಕೋಡ್ ಬರೆಯಲು ಅವುಗಳ ಸೂಕ್ಷ್ಮ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಮತ್ತು ಸೂಕ್ತ ಬಳಕೆಯ ಸಂದರ್ಭಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಬಹಳ ಮುಖ್ಯ. ಈ ಸಮಗ್ರ ಮಾರ್ಗದರ್ಶಿಯು ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳ ನಡುವಿನ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಪರಿಶೀಲಿಸುತ್ತದೆ, ಮತ್ತು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳಲ್ಲಿ ಅವುಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸಿಕೊಳ್ಳಲು ಉತ್ತಮ ಪದ್ಧತಿಗಳನ್ನು ಅನ್ವೇಷಿಸುತ್ತದೆ.

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಇಂಟರ್ಫೇಸ್ (Interface) ಒಂದು ಆಬ್ಜೆಕ್ಟ್‌ಗೆ ಕರಾರು (contract) ವ್ಯಾಖ್ಯಾನಿಸಲು ಇರುವ ಒಂದು ಶಕ್ತಿಯುತ ಮಾರ್ಗವಾಗಿದೆ. ಇದು ಒಂದು ಆಬ್ಜೆಕ್ಟ್‌ನ ಆಕಾರವನ್ನು ವಿವರಿಸುತ್ತದೆ, ಅದು ಹೊಂದಿರಬೇಕಾದ ಪ್ರಾಪರ್ಟಿಗಳು, ಅವುಗಳ ಡೇಟಾ ಟೈಪ್‌ಗಳು ಮತ್ತು ಐಚ್ಛಿಕವಾಗಿ, ಅದು ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾದ ಯಾವುದೇ ಮೆಥಡ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುತ್ತದೆ. ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮುಖ್ಯವಾಗಿ ಆಬ್ಜೆಕ್ಟ್‌ಗಳ ರಚನೆಯನ್ನು ವಿವರಿಸುತ್ತವೆ.

ಇಂಟರ್ಫೇಸ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಉದಾಹರಣೆ

ಒಂದು ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಸಿಂಟ್ಯಾಕ್ಸ್ ಸರಳವಾಗಿದೆ:


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 ವೇರಿಯೇಬಲ್‌ಗೆ ನಿಯೋಜಿಸಲಾದ ಯಾವುದೇ ಆಬ್ಜೆಕ್ಟ್ ಈ ರಚನೆಗೆ ಬದ್ಧವಾಗಿರಬೇಕು; ಇಲ್ಲದಿದ್ದರೆ, ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಕಂಪೈಲರ್ ದೋಷವನ್ನು (error) ತೋರಿಸುತ್ತದೆ.

ಇಂಟರ್ಫೇಸ್‌ಗಳ ಪ್ರಮುಖ ಲಕ್ಷಣಗಳು

ಘೋಷಣಾ ವಿಲೀನದ ಉದಾಹರಣೆ


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) ಡೇಟಾದ ಆಕಾರವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಒಂದು ಮಾರ್ಗವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಇಂಟರ್ಫೇಸ್‌ಗಳಂತಲ್ಲದೆ, ಟೈಪ್‌ಗಳು ಹೆಚ್ಚು ಬಹುಮುಖವಾಗಿವೆ ಮತ್ತು ಪ್ರಿಮಿಟಿವ್ ಟೈಪ್‌ಗಳು, ಯೂನಿಯನ್‌ಗಳು, ಇಂಟರ್‌ಸೆಕ್ಷನ್‌ಗಳು ಮತ್ತು ಟಪಲ್‌ಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ವ್ಯಾಪಕ ಶ್ರೇಣಿಯ ಡೇಟಾ ರಚನೆಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಬಹುದು.

ಟೈಪ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಮತ್ತು ಉದಾಹರಣೆ

ಟೈಪ್ ಅಲಿಯಾಸ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಸಿಂಟ್ಯಾಕ್ಸ್ ಈ ಕೆಳಗಿನಂತಿದೆ:


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 ಎರಡರ ಪ್ರಾಪರ್ಟಿಗಳನ್ನು ಸಂಯೋಜಿಸುತ್ತದೆ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಟೈಪ್‌ಗಳನ್ನು ಸಂಯೋಜಿಸುವ ಮೂಲಕ ಹೊಸ ಟೈಪ್‌ಗಳನ್ನು ರಚಿಸಲು ಇದು ನಿಮಗೆ ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.

ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸಗಳು: ಇಂಟರ್ಫೇಸ್ vs ಟೈಪ್

ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳು ಎರಡೂ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ ಡೇಟಾ ರಚನೆಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ಉದ್ದೇಶವನ್ನು ಪೂರೈಸುತ್ತವೆಯಾದರೂ, ಒಂದನ್ನು ಇನ್ನೊಂದರ ಬದಲು ಯಾವಾಗ ಬಳಸಬೇಕೆಂದು ಪ್ರಭಾವಿಸುವ ಪ್ರಮುಖ ವ್ಯತ್ಯಾಸಗಳಿವೆ:

  1. ಘೋಷಣಾ ವಿಲೀನ (Declaration Merging): ಇಂಟರ್ಫೇಸ್‌ಗಳು ಘೋಷಣಾ ವಿಲೀನವನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ, ಆದರೆ ಟೈಪ್‌ಗಳು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ. ನೀವು ಹಲವು ಫೈಲ್‌ಗಳು ಅಥವಾ ಮಾಡ್ಯೂಲ್‌ಗಳಲ್ಲಿ ಟೈಪ್ ವ್ಯಾಖ್ಯಾನವನ್ನು ವಿಸ್ತರಿಸಬೇಕಾದರೆ, ಇಂಟರ್ಫೇಸ್‌ಗಳಿಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ.
  2. ಯೂನಿಯನ್ ಟೈಪ್‌ಗಳು (Union Types): ಟೈಪ್‌ಗಳು ಯೂನಿಯನ್ ಟೈಪ್‌ಗಳನ್ನು ಪ್ರತಿನಿಧಿಸಬಹುದು, ಆದರೆ ಇಂಟರ್ಫೇಸ್‌ಗಳು ನೇರವಾಗಿ ಯೂನಿಯನ್‌ಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನೀವು ಹಲವು ವಿಭಿನ್ನ ಟೈಪ್‌ಗಳಲ್ಲಿ ಒಂದಾಗಿರಬಹುದಾದ ಟೈಪ್ ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಬೇಕಾದರೆ, ಟೈಪ್ ಅಲಿಯಾಸ್ ಬಳಸಿ.
  3. ಇಂಟರ್‌ಸೆಕ್ಷನ್ ಟೈಪ್‌ಗಳು (Intersection Types): ಟೈಪ್‌ಗಳು & ಆಪರೇಟರ್ ಬಳಸಿ ಇಂಟರ್‌ಸೆಕ್ಷನ್ ಟೈಪ್‌ಗಳನ್ನು ರಚಿಸಬಹುದು. ಇಂಟರ್ಫೇಸ್‌ಗಳು ಇತರ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ವಿಸ್ತರಿಸುವ ಮೂಲಕ ಇದೇ ರೀತಿಯ ಪರಿಣಾಮವನ್ನು ಸಾಧಿಸಬಹುದು, ಆದರೆ ಇಂಟರ್‌ಸೆಕ್ಷನ್ ಟೈಪ್‌ಗಳು ಹೆಚ್ಚು ನಮ್ಯತೆಯನ್ನು ನೀಡುತ್ತವೆ.
  4. ಪ್ರಿಮಿಟಿವ್ ಟೈಪ್‌ಗಳು (Primitive Types): ಟೈಪ್‌ಗಳು ನೇರವಾಗಿ ಪ್ರಿಮಿಟಿವ್ ಟೈಪ್‌ಗಳನ್ನು (ಸ್ಟ್ರಿಂಗ್, ನಂಬರ್, ಬೂಲಿಯನ್) ಪ್ರತಿನಿಧಿಸಬಹುದು, ಆದರೆ ಇಂಟರ್ಫೇಸ್‌ಗಳನ್ನು ಮುಖ್ಯವಾಗಿ ಆಬ್ಜೆಕ್ಟ್ ಆಕಾರಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.
  5. ದೋಷ ಸಂದೇಶಗಳು (Error Messages): ಕೆಲವು ಡೆವಲಪರ್‌ಗಳು, ವಿಶೇಷವಾಗಿ ಸಂಕೀರ್ಣ ಟೈಪ್ ರಚನೆಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ, ಟೈಪ್‌ಗಳಿಗೆ ಹೋಲಿಸಿದರೆ ಇಂಟರ್ಫೇಸ್‌ಗಳು ಸ್ವಲ್ಪ ಸ್ಪಷ್ಟವಾದ ದೋಷ ಸಂದೇಶಗಳನ್ನು ನೀಡುತ್ತವೆ ಎಂದು ಕಂಡುಕೊಳ್ಳುತ್ತಾರೆ.

ಉತ್ತಮ ಪದ್ಧತಿಗಳು: ಇಂಟರ್ಫೇಸ್ ಮತ್ತು ಟೈಪ್ ನಡುವೆ ಆಯ್ಕೆ

ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳ ನಡುವೆ ಆಯ್ಕೆ ಮಾಡುವುದು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ನ ನಿರ್ದಿಷ್ಟ ಅವಶ್ಯಕತೆಗಳು ಮತ್ತು ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಆದ್ಯತೆಗಳನ್ನು ಅವಲಂಬಿಸಿರುತ್ತದೆ. ಪರಿಗಣಿಸಲು ಕೆಲವು ಸಾಮಾನ್ಯ ಮಾರ್ಗಸೂಚಿಗಳು ಇಲ್ಲಿವೆ:

ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳು: ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್ ಸನ್ನಿವೇಶಗಳು

ಜಾಗತಿಕ ಅಪ್ಲಿಕೇಶನ್‌ನಲ್ಲಿ ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳನ್ನು ಹೇಗೆ ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ವಿವರಿಸಲು ಕೆಲವು ಪ್ರಾಯೋಗಿಕ ಉದಾಹರಣೆಗಳನ್ನು ಪರಿಗಣಿಸೋಣ:

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); //ಔಟ್‌ಪುಟ್ ಮೌಲ್ಯೀಕರಣ ಪರಿಶೀಲನೆ.

ತೀರ್ಮಾನ: ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಘೋಷಣೆಗಳಲ್ಲಿ ಪಾಂಡಿತ್ಯ

ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳು ಡೇಟಾ ರಚನೆಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಮತ್ತು ಕೋಡ್ ಗುಣಮಟ್ಟವನ್ನು ಹೆಚ್ಚಿಸಲು ಶಕ್ತಿಯುತ ಸಾಧನಗಳಾಗಿವೆ. ದೃಢವಾದ, ನಿರ್ವಹಿಸಬಲ್ಲ ಮತ್ತು ಸ್ಕೇಲೆಬಲ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ನಿರ್ಮಿಸಲು ಅವುಗಳ ವ್ಯತ್ಯಾಸಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಮತ್ತು ಅವುಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಬಳಸುವುದು ಅತ್ಯಗತ್ಯ. ಈ ಮಾರ್ಗದರ್ಶಿಯಲ್ಲಿ ವಿವರಿಸಲಾದ ಉತ್ತಮ ಪದ್ಧತಿಗಳನ್ನು ಅನುಸರಿಸುವ ಮೂಲಕ, ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳನ್ನು ಯಾವಾಗ ಬಳಸಬೇಕೆಂದು ನೀವು ತಿಳುವಳಿಕೆಯುಳ್ಳ ನಿರ್ಧಾರಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳಬಹುದು, ಅಂತಿಮವಾಗಿ ನಿಮ್ಮ ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್ ಡೆವಲಪ್‌ಮೆಂಟ್ ಕಾರ್ಯಪ್ರವಾಹವನ್ನು ಸುಧಾರಿಸಬಹುದು ಮತ್ತು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್‌ಗಳ ಯಶಸ್ಸಿಗೆ ಕೊಡುಗೆ ನೀಡಬಹುದು.

ಇಂಟರ್ಫೇಸ್‌ಗಳು ಮತ್ತು ಟೈಪ್‌ಗಳ ನಡುವಿನ ಆಯ್ಕೆಯು ಹೆಚ್ಚಾಗಿ ವೈಯಕ್ತಿಕ ಆದ್ಯತೆ ಮತ್ತು ಪ್ರಾಜೆಕ್ಟ್ ಅವಶ್ಯಕತೆಗಳ ವಿಷಯವಾಗಿದೆ ಎಂಬುದನ್ನು ನೆನಪಿಡಿ. ನಿಮಗೆ ಮತ್ತು ನಿಮ್ಮ ತಂಡಕ್ಕೆ ಯಾವುದು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ಕಂಡುಹಿಡಿಯಲು ಎರಡೂ ವಿಧಾನಗಳೊಂದಿಗೆ ಪ್ರಯೋಗ ಮಾಡಿ. ಟೈಪ್‌ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಟೈಪ್ ಸಿಸ್ಟಮ್‌ನ ಶಕ್ತಿಯನ್ನು ಅಳವಡಿಸಿಕೊಳ್ಳುವುದು ನಿಸ್ಸಂದೇಹವಾಗಿ ಹೆಚ್ಚು ವಿಶ್ವಾಸಾರ್ಹ ಮತ್ತು ನಿರ್ವಹಿಸಬಲ್ಲ ಕೋಡ್‌ಗೆ ಕಾರಣವಾಗುತ್ತದೆ, ಇದು ವಿಶ್ವಾದ್ಯಂತ ಡೆವಲಪರ್‌ಗಳಿಗೆ ಪ್ರಯೋಜನವನ್ನು ನೀಡುತ್ತದೆ.