ਦੋਵੇਂ ਡੇਟਾ ਦੀ ਸ਼ਕਲ ਦਾ ਵਰਣਨ ਕਰਦੇ ਹਨ ਅਤੇ ਅਕਸਰ ਆਪਸ ਵਿੱਚ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਪਰ ਉਹਨਾਂ ਦੀਆਂ ਵੱਖ-ਵੱਖ ਸਮਰੱਥਾਵਾਂ ਹਨ।
interface User { name: string; age: number; }
type User2 = { name: string; age: number; };
ਦੋਵੇਂ ਡੇਟਾ ਦੀ ਸ਼ਕਲ ਦਾ ਵਰਣਨ ਕਰਦੇ ਹਨ ਅਤੇ ਅਕਸਰ ਆਪਸ ਵਿੱਚ ਬਦਲਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਪਰ ਉਹਨਾਂ ਦੀਆਂ ਵੱਖ-ਵੱਖ ਸਮਰੱਥਾਵਾਂ ਹਨ।
interface User { name: string; age: number; }
type User2 = { name: string; age: number; };
typeinterfacetype ID = string | number; // unions
type Pair = [number, number]; // tuples
type Name = User["name"]; // indexed/mapped/conditional types
type Nullable<T> = T | null; // wrap any type
type ਕਿਸੇ ਵੀ type ਲਈ ਇੱਕ ਸਧਾਰਨ alias ਹੈ — primitives, unions, tuples, mapped types। interface ਸਿਰਫ਼ object/function ਆਕਾਰ ਦਾ ਵਰਣਨ ਕਰਦਾ ਹੈ।
interface ਕਿਹੜਾ ਕੰਮ ਕਰ ਸਕਦਾ ਹੈ ਜੋ type ਨਹੀਂ ਕਰ ਸਕਦਾinterface Box { width: number; }
interface Box { height: number; } // declaration merging — both merge into one
// Box now has width AND height
Interfaces declaration merging ਨੂੰ ਸਮਰਥਨ ਕਰਦੇ ਹਨ (ਮਲਟੀਪਲ ਡਿਕਲੇਰੇਸ਼ਨ ਜੋੜੇ ਜਾਂਦੇ ਹਨ) ਅਤੇ ਸਭ ਤੋਂ ਵਧੀਆ ਤਰੀਕਾ ਹਨ ਵਧਾਉਣ/ਵਾਧਾ ਕਰਨ ਲਈ, ਜਿਸ ਵਿੱਚ ਤੀਜੀ ਧਿਰ ਦੀ ਲਾਇਬ੍ਰੇਰੀ ਦੀਆਂ types ਨੂੰ ਵਧਾਉਣਾ ਸ਼ਾਮਲ ਹੈ।
interface Admin extends User { role: string; } // interface
type Admin2 = User & { role: string }; // type uses intersection
ਇੱਕ ਆਮ ਰਵਾਇਜ: object ਆਕਾਰ ਅਤੇ ਜਨਤਕ APIs ਲਈ interface ਵਰਤੋ (ਵਧੀਆ ਗਲਤੀ ਸੁਨੇਹੇ, ਸਮੇਲਨਯੋਗ, ਵਿੰਨ੍ਹਣਯੋਗ), ਅਤੇ type ਜਦੋਂ ਤੁਸੀਂ unions, tuples, ਜਾਂ ਹੋਰ type ਓਪਰੇਸ਼ਨਸ ਦੀ ਲੋੜ ਹੋਵੇ। ਸਥਿਰਤਾ ਲਈ ਇੱਕ ਨੂੰ ਡਿਫਾਲਟ ਵਜੋਂ ਚੁਣੋ — ਬਹੁਤ ਸਾਰੀਆਂ ਟੀਮਾਂ ਆਬਜੈਕਟਸ ਲਈ interface ਨੂੰ ਡਿਫਾਲਟ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਸਿਰਫ਼ ਜਦੋਂ ਇਸਦੀ ਵਾਧੂ ਸ਼ਕਤੀ ਦੀ ਲੋੜ ਹੋਵੇ ਤਦ type ਤੱਕ ਪਹੁੰਚਦੀਆਂ ਹਨ।
ਵਿਸਤ੍ਰਿਤ ਜਵਾਬਾਂ ਨਾਲ IT ਇੰਟਰਵਿਊ ਸਵਾਲਾਂ ਦੀ ਇੱਕ ਲਾਇਬ੍ਰੇਰੀ — ਜੂਨੀਅਰ ਤੋਂ ਸੀਨੀਅਰ ਤੱਕ।
ਦਾਨ ਕਰੋ