рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╢реВрдиреНрдп рдкрд░ рдПрдХ рдиреЛрдЯ

рдпрджрд┐, рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рдЖрдкрдиреЗ рдордЬрдмреВрдд рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдкрд╛рд░рдВрдкрд░рд┐рдХ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рд▓рд┐рдЦрд╛ рд╣реИ, рддреЛ рдЖрдк void рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣ рдкреНрд░рдХрд╛рд░ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЬрдм рдХреЙрд▓ рдХреА рдЬрд╛рддреА рд╣реИрдВ рддреЛ рдХреБрдЫ рднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред



void рдЗрдХрд╛рдИ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рднреА рдЙрдкрд▓рдмреНрдз рд╣реИред рдЬреЗрдПрд╕ рдореЗрдВ, рдпрд╣ рдПрдХ рдСрдкрд░реЗрдЯрд░ рд╣реИред рдЯреАрдПрд╕ рдореЗрдВ, рдпрд╣ рдПрдХ рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИред рдФрд░ рдпрд╣рд╛рдБ рдФрд░ рд╡рд╣рд╛рдБ, void рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдиреНрдп рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ void рдЖрдП рдереЗред

рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢реВрдиреНрдп рдХрдерди


рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, void рдСрдкрд░реЗрдЯрд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдХреА рдЧрдИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реА рд╕рдордп, рдХреЛрдИ рднреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, void рд╣рдореЗрд╢рд╛ undefined рд▓реМрдЯрддрд╛ рд╣реИред

 let i = void 2; // i === undefined 

рд╣рдореЗрдВ рдРрд╕реЗ рдСрдкрд░реЗрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдпрд╣ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЬреЗрдПрд╕-рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд╢реБрд░реБрдЖрддреА рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдбреЗрд╡рд▓рдкрд░реНрд╕ undefined рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдореВрд▓реНрдп рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди void рд╣рдореЗрд╢рд╛ undefined рдХрд╛ рд╕рд╣реА рдореВрд▓реНрдп рд▓реМрдЯрд╛рддрд╛ рд╣реИред

рджреВрд╕рд░реЗ, void рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рддрд░реАрдХрд╛ рд╣реИ:

 void function() {  console.log('What') }() 

рдФрд░ рдпрд╣ рд╕рдм - рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо рд╕реНрдерд╛рди рдХреЗ рдкреНрд░рджреВрд╖рдг рдХреЗ рдмрд┐рдирд╛:

 void function aRecursion(i) {  if(i > 0) {    console.log(i--)    aRecursion(i)  } }(3) console.log(typeof aRecursion) // undefined 

рдЪреВрдВрдХрд┐ void рдСрдкрд░реЗрдЯрд░ рд╣рдореЗрд╢рд╛ undefined рд▓реМрдЯрддрд╛ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЧрдИ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддрд╛ рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рд▓реМрдЯрдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рд╣реИ рдХреБрдЫ рдореВрд▓реНрдп рд╡рд╛рдкрд╕ рдХрд┐рдП рдмрд┐рдирд╛, рд▓реЗрдХрд┐рди рдПрдХ рдХреЙрд▓ рдХреЗ рд╕рд╛рде, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдЫ рдХреЙрд▓рдмреИрдХ:

 //  -  undefined      function middleware(nextCallback) {  if(conditionApplies()) {    return void nextCallback();  } } 

рдпрд╣ рд╣рдореЗрдВ void рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддрд░реАрдХрд╛ рд╣реИред рдпрд╣ рдСрдкрд░реЗрдЯрд░ рдПрдХ рддрд░рд╣ рдХрд╛ "рдЧрд╛рд░реНрдб рдкреЛрд╕реНрдЯ" рдПрдкреНрд▓реАрдХреЗрд╢рди рд╣реИред рдпрджрд┐ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╣рдореЗрд╢рд╛ undefined рд▓реМрдЯрдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЗрд╕реЗ void рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

 button.onclick = () => void doSomething(); 

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╢реВрдиреНрдп рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░


рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЯрд╛рдЗрдк рд╢реВрдиреНрдп рдХреЛ any рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡рд┐рдкрд░реАрдд рдХреА рддрд░рд╣ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдлрд╝рдВрдХреНрд╢рдВрд╕ рд╣рдореЗрд╢рд╛ рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдпрд╛ undefined рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдорд╛рди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:

 function iHaveNoReturnValue(i) {  console.log(i) } //  undefined 

рдЪреВрдВрдХрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд╝рдВрдХреНрд╢рдВрд╕, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреБрдЫ рднреА рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╣рдореЗрд╢рд╛ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рд╣рдореЗрд╢рд╛ undefined рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ void рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдкреНрд░рдХрд╛рд░ рд╣реИ рдХрд┐ рдлрд╝рдВрдХреНрд╢рди undefined :

 declare function iHaveNoReturnValue(i: number): void 

рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ void рдЗрдХрд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП рдФрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЪрд░ рдШреЛрд╖рдгрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдПрдХрдорд╛рддреНрд░ рдорд╛рди рдЬреЛ рд╣рдореЗрд╢рд╛ рд╢реВрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, undefined ред

 declare function iTakeNoParameters(x: void): void iTakeNoParameters() //  iTakeNoParameters(undefined) //  iTakeNoParameters(void 2) //  

рдирддреАрдЬрддрди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЯреАрдПрд╕ рдореЗрдВ void рдФрд░ undefined рдкреНрд░рдХрд╛рд░ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рдмрд╛рдд рд╣реИред рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдмреАрдЪ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рдЕрдВрддрд░ рд╣реИ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЕрддреНрдпрдВрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд▓реМрдЯреЗ void рдкреНрд░рдХрд╛рд░ рдХреЛ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдХреЙрд▓рдмреИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдиреНрдирдд рдкреИрдЯрд░реНрди рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

 function doSomething(callback: () => void) {  let c = callback() // callback   undefined  // c -  undefined } //     function aNumberCallback(): number {  return 2; } // ;    doSometing doSomething(aNumberCallback) 

рдбреЗрд╡рд▓рдкрд░реНрд╕ рдРрд╕реЗ рдбрд┐рдЬрд╛рдЗрдиреЛрдВ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдХреНрд╕рд░ рдЬреЗрдПрд╕ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдмрд╕ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрд╣рд╛рдБ рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рд╕рд╛рдордЧреНрд░реА рджреА рдЧрдИ рд╣реИ ред

рдпрджрд┐ рдЖрдк рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЗрд╡рд▓ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ undefined рд▓реМрдЯрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рддрджрдиреБрд╕рд╛рд░ рд╡рд┐рдзрд┐ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

 //  // function doSomething(callback: () => void) { //  function doSomething(callback: () => undefined) { /* ... */ } function aNumberCallback(): number { return 2; } //  -    doSomething(aNumberCallback) 

рдкрд░рд┐рдгрд╛рдо


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

рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ! рдХреНрдпрд╛ рдЖрдк JS рдФрд░ TS рдореЗрдВ void рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ?


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


All Articles