10 рд▓реЛрдХрдкреНрд░рд┐рдп рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдкреНрд░рд╢реНрди (рдЫреЛрдЯреЗ рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде)


1. рдУрдорд┐рдЯ рдкреНрд░рдХрд╛рд░ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИ?


рдЙрддреНрддрд░ : рдпрд╣ рдПрдХ рдирдпрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореВрд▓ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


type Person = { name: string; age: number; location: string; }; type QuantumPerson = Omit<Person, 'location'>; //    QuantumPerson = { name: string; age: number; }; 

2. рдореБрдЭреЗ "рдШреЛрд╖рд┐рдд" рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП?


рдЙрддреНрддрд░ : рдПрдХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЬреЛ рдЖрдкрдХреЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдШреЛрд╖рд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 declare const libraryName; 

3. рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдШреЛрд╖рдгрд╛ рдлрд╛рдЗрд▓реЗрдВ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ?


рдЙрддреНрддрд░ : tsconfig.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рд╣реА рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 { "compilerOptions": { ... "declaration": true, } } 

4. рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдХреИрд╕реЗ рдХрд░реЗрдВ?


рдЙрддреНрддрд░ : рдЖрдкрдХреЛ рдХреЛрд╖реНрдардХ {} рдХреЗ рдмрд┐рдирд╛ рдореВрд▓ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рд╕рдорд╛рди рдлрд╝рдВрдХреНрд╢рди рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХ рдФрд░ / рдпрд╛ рд╡рд╛рдкрд╕реА рдорд╛рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рдирд╛ рд╣реЛрдЧрд╛ред


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 function add(x: string, y: string): string; function add(x: number, y: number): number { return x + y; } 

5. рд╕рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЧреБрдгреЛрдВ рдХреЛ рд╡реИрдХрд▓реНрдкрд┐рдХ рдХреИрд╕реЗ рдХрд░реЗрдВ?


рдЙрддреНрддрд░ : рдЖрдВрд╢рд┐рдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 interface Person { name: string; age: number; } type PartialPerson = Partial<Person>; //    linesinterface PartialPerson { name?: string; age?: number; } 

6. рдбреЗрдХреЛрд░реЗрдЯрд░реНрд╕ рдХреЛ рдХрд┐рд╕ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?


рдЙрддреНрддрд░ : рд╡рд░реНрдЧ, рдЧреБрдг, рд╡рд┐рдзрд┐рдпрд╛рдБ, рдФрд░ рд╡рд┐рдзрд┐ рддрд░реНрдХред


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 @MyClassDecorator export class Person { тАж @MyPropertyDecorator myProperty: string; } 

7. "рд░рд┐рдХреЙрд░реНрдб" рдкреНрд░рдХрд╛рд░ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣реИ?


рдЙрддреНрддрд░ : рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдЯрд╛рдЗрдкреНрдб рдореИрдк рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 let Person = Record<string, number> = {}; Person.age = 25; 

8. рдореИрдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмрд╛рд╣рд░ рдХрдХреНрд╖рд╛рдУрдВ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реВрдВ рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ?


рдЙрддреНрддрд░ : рдХреНрд▓рд╛рд╕ рдХреЗ рдирд╛рдо рд╕реЗ рдкрд╣рд▓реЗ рдПрдХреНрд╕рдкреЛрд░реНрдЯ рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 export class Person {} 

9. рдХреАрд╡рд░реНрдб "рдЕрдЬреНрдЮрд╛рдд" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ?


рдЙрддреНрддрд░ : рдЬрдм рдЖрдк рдХрд┐рд╕реА рдХреАрд╡рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ / рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдЯреАрдХ рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдЗрд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 let person: unknown = 'John'; if (typeof person === string) { let name: string = person; } 

10. ".map" рдлрд╝рд╛рдЗрд▓ рдХреНрдпрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдФрд░ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рд╣реИ?


рдЙрддреНрддрд░ : рдореИрдк рдлрд╛рдЗрд▓ рдПрдХ рд╕реЛрд░реНрд╕ рдореИрдк рдлрд╛рдЗрд▓ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рдордп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ tsconfig.json рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП sourceMap рдХрдВрдкрд╛рдЗрд▓рд░ рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХрд░рдХреЗ рдЙрддреНрдкрдиреНрди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ


рдПрдХ рдЙрджрд╛рд╣рд░рдг :


 { "compilerOptions": { ... "sourceMap": true, } } 

Source: https://habr.com/ru/post/hi484546/


All Articles