Ողջույն միջին! Սա իմ առաջին, հուսով եմ, TypeScript հակիրճ տեղեկատվության շարքն է, որը նախատեսված է արագ մուտք գործելու համար, երբ ինչ-որ մեկին անհրաժեշտ է հիշել հայեցակարգը կամ օգտագործել այս հիանալի ծրագրավորման լեզվի օրինակը:
Սկսենք սովորական տեսակներից, որոնք մենք օգտագործում ենք ամեն անգամ, բայց դա կարող է տեղի ունենալ, և երբեմն մենք պետք է արագ վերանայենք:
Պարզունակները
լար
// Explicit type const NAME: string = "Bob"; // Implicit type const NAME = "Alice";
համար
Հիշիր: JavaScript-ը (TS-ը կառուցված է JS-ի վրա) չունի հատուկ գործարկման արժեք ամբողջ թվերի համար, ուստի չկա
int
կամfloat
-ին համարժեք, ամեն ինչ պարզապեսnumber
է:
// Explicit type const THIS_IS_AN_INTEGER: number = 1000; const THIS_IS_A_FLOATING: number = 1000.5; // Implicit type const THIS_IS_AN_INTEGER = 1000; const THIS_IS_A_FLOATING = 1000.5;
բուլյան
// Explicit type const FLAG: boolean = true; // Implicit type const FLAG = false;
Զանգվածներ
const NUMBERS_ARRAY: number[] = [1, 2, 3]; const NUMBERS_ARRAY_TOO: Array<number> = [4.1, 5.2, 6.3]; //Accessing some element const TWO: number = NUMBERS_ARRAY[1]; const SIX_POINT_THREE = NUMBERS_ARRAY_TOO[2]; //Read only array const VOWELS: readonly string[] = ["a", "e", "i", "o", "u"]; VOWELS.push("z"); //Will say: "Property 'push' does not exist on type 'readonly string[]'."
Հատուկ տեսակներ
ցանկացած
// This type disables type checking allowing all types to be used let joker: any = "I'm a string"; joker = false; joker = joker + 5; // "useful when you don’t want to write out a long type just to convince TypeScript that a particular line of code is okay." const OBJECT_I_KNOW: any = { a:"a", two:2, etc:true};
անհայտ
Ես պետք է կանգ առնեմ այստեղ բացատրելու կամ հիշելու համար, մի փոքր ավելի այս տեսակը: անհայտ տեսակն օգտագործվում է նշելու, որ փոփոխականի տեսակը հայտնի չէ՝ կանխելով Typescript-ի կողմից տրամադրված տիպի պաշտպանության կորուստը: Օրինակ, եթե դուք սահմանում եք any տիպի օբյեկտ, գործնականում կարող եք փորձել մուտք գործել դրա ցանկացած հատկություն, նույնիսկ եթե այդ հատկությունը գոյություն չունի, ինչը կարող է հանգեցնել վրիպակների. բայց եթե օբյեկտը սահմանում եք որպես անհայտ տեսակ, չեք կարող օգտագործել այն, քանի դեռ չեք փոխանցել այն հայտնի տիպի:
const ILL_BUG: any = {uniqueProperty: "I'm unique"}; console.log(ILL_BUG.anotherProperty); //This will log as undefined const ILL_NOT_BUG: unknown = {uniqueProperty: "I'm unique"}; console.log(ILL_NOT_BUG.anotherProperty); //This will say "'ILL_NOT_BUG' is of type 'unknown'." preventing the undefined log console.log(ILL_NOT_BUG as {uniqueProperty: string;}); //This cast alows the variable to be used
անհայտտեսակը շատ հետաքրքիր և ծավալուն թեմա է: Տեղեկացրեք ինձ, եթե կցանկանաք, որ ես խորամուխ լինեմ սա:
երբեք
Սա ևս մեկ տեսակ է, որն օգտագործվում է արտահոսքերը կամ սխալները կանխելու համար, դուք օգտագործում եք այն, երբ համոզված եք, որ ձեր գործառույթը երբեք որևէ բան չի վերադարձնի: Դուք կարող եք ասել, որ դա void է, բայց void կարող է ունենալ null կամ չսահմանված արժեք, մինչդեռ երբեք, երբեք…
// You know that this function always will throw an error and no more function throwError(error: string): never { throw new Error(error); }
undefined & null
let IM_UNDEFINED: any; // Notice that an uninitialized variable cannot be const, use let console.log(IM_UNDEFINED); // Will log 'undefined' const IM_NULL: any = null; console.log(IM_NULL); // Will log 'null'
Tuples
// A typed array const PERSONAL_DATA: [string, number, boolean] = ["Alice", 30, true];
Օբյեկտներ
const PERSONAL_DATA: { name: string, age: number, married: boolean} = { name: "Alice", age: 30, married: true};
Համարներ
// Enum: A group of constants // Default enum WEEK_DAYS { sunday, monday, tuesday, wednesday, thursday, friday, saturday }; // Fully initialized enum HTTP_CODES { SUCCESS = 200, BAD_REQUEST = 400, UNAUTHORIZED = 401, NOT_FOUND = 404, }; console.log(HTTP_CODES.SUCCESS); // Will log '200'
միություն
// Two or more types in one function printId(id: number | string) { console.log("Your ID is: " + id); } printId(10145134); // Will log "Your ID is: 10145134" printId("202-bc34"); // Will log "Your ID is: 202-bc34"
Մուտքագրեք փոխանուններ և միջերեսներ
// You can define an object as type and its properties type Point = { x: number; y: number; }; function printXYCoordinates(pt: Point) { console.log("X coordinate: " + pt.x); console.log("Y coordinate: " + pt.y); } printXYCoordinates({ x: 5, y: 5 }); // The interface works similary interface IPoint { x: number; y: number; } // But you can add new properties to an existing interface interface IPoint { z: number; } function print3DCoordinates(pt: IPoint) { console.log("X coordinate: " + pt.x); console.log("Y coordinate: " + pt.y); console.log("Z coordinate: " + pt.z); } print3DCoordinates({ x: 5, y: 5, z: 5 });
Դե, այս ամենն առայժմ: Հուսով եմ, որ այն օգտակար է եղել ձեզ համար, և որ դուք ցանկանում եք պահպանել այս բովանդակությունը՝ այս տեղեկատվությունը արագ մուտք գործելու համար: Հուսով եմ, որ կստանամ շատ արձագանքներ՝ բարելավելու իմ բովանդակությունը և շարունակելու հավաքագրել տվյալներ, որոնք կօգնեն մեզ բոլորիս շարունակել գրագրումը::