рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп tsc v1.1.0-1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
рддреНрд░реБрдЯрд┐ TS2323: рдЯрд╛рдЗрдк 'рдЯрд╛рдЗрдорд░' 'рд╕рдВрдЦреНрдпрд╛' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ:
this.sTimeout = setTimeout (() => this.showDelay (), 250);
sTimeout рдХреЛ рдПрдХ рдирдВрдмрд░ (рдирд┐рдЬреА рд╕рдВрд╕реНрдХрд░рдг) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдХреГрдкрдпрд╛ рдПрдХ рдкреВрд░реНрдг рдЙрджрд╛рд╣рд░рдг рдкреЛрд╕реНрдЯ рдХрд░реЗрдВред рдЕрдм рддрдХ рджреА рдЧрдИ рдЬрд╛рдирдХрд╛рд░реА рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ:
class Foo {
private sTimeout: number;
showDelay() { }
bar() {
setTimeout(() => this.showDelay(), 250);
}
}
рдХреЛрдИ рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ Timer
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЬрд┐рд╕ setTimeout
рдЖрдк рдХреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рд╡рд╣ window.setTimeout
ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ - рдкрд╣рд▓реЗ рдереЛрдбрд╝реА рдЬрд▓реНрджреА рдереАред рд╣реЗрдпрд░ рдпреВ рдЧреЛ:
class Foo {
private sTimeout: number; // Storing Timeout ID - to clear it - if needed
private showDelay() { }
constructor() {
this.sTimeout = setTimeout(() => this.showDelay(), 250);
}
}
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХрддрд╛ рд╣реИ:
Tsc v1.1.0-1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛
/tests/Foo.ts(5,3): рддреНрд░реБрдЯрд┐ TS2323: 'рд╕рдВрдЦреНрдпрд╛' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 'рдЯрд╛рдЗрдорд░' рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред
рдЕрднреА рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдХрд┐рд╕реА рднреА рд╕рдордп sTimeout рдЯрд╛рдЗрдк рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддрдп рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИред рдЬрдм рдЖрдк F12 setTimeout
рд╣реЛрддреЗ рд╣реИрдВ рддреЛ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ?
рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ F12 рд╕реЗ рдХреНрдпрд╛ рдорддрд▓рдм рд╣реИ? ред
"рдкрд░рд┐рднрд╛рд╖рд╛ рдкрд░ рдЬрд╛рдПрдВ"
рдлрд┐рд░ рд╕реЗ, рдХреЛрдИ рдмрд┐рд▓реНрдЯ-рдЗрди рдЯрд╛рдЗрдк рдирд╣реАрдВ рд╣реИ, рдЬрд┐рд╕реЗ Timer
рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХрд╛ рдХреЛрдб рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреГрдкрдпрд╛ рдЕрдкрдиреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЕрдкрдирд╛ рдЙрджрд╛рд╣рд░рдг рдЖрдЬрд╝рдорд╛рдПрдВ, рдпрд╛ рдпрд╣ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпрд╣ Timer
рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣рд╛ рд╣реИред рдореИрдВ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ setTimeout
рдмрд┐рд▓реНрдЯ-рдЗрди рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЬрд┐рдХреНрд░ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреБрдЫ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдлрд╝рдВрдХреНрд╢рди рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдПрдХ рдЕрд▓рдЧ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рд╣реИред
рдЕрдкрдиреЗ рдЖрдк рд╕реЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдХреЛрд╢рд┐рд╢ рдХреА: рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реЗ рдЯреВрд▓рдХрд┐рди рдпрд╛ рдЕрдиреНрдп рдХреЛрдб рдореЗрдВ рдПрдХ рдШрдЯрдХ рдХреЗ рдХрд╛рд░рдг рд╣реЛрддрд╛ рд╣реИ - рдЕрдкрдирд╛ рд╕рдордп рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВред рдзрдиреНрдпрд╡рд╛рдж ... рдмрдВрдж ...
рднрд╡рд┐рд╖реНрдп рдХреЗ рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдиреЛрдб рдХреА рд╡рдЬрд╣ рд╕реЗ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдкрд╛рд░ рдЖрдпрд╛ рд╣реВрдВред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдВред рд╕рдорд╛рдзрд╛рди рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреВрд░реНрдг рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рдЬреЛ NodeJS.Timer
рдирд╣реАрдВ Timer
(рдЬреЛ рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ рдХрд┐ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреНрд░рд╛рдВрд╕рдкрд┐рд▓рд░ рдХрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ, рдФрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред
@jdfreder рд╕рдордп рдЙрдбрд╝ рдЬрд╛рддрд╛ рд╣реИ - рднрд╡рд┐рд╖реНрдп рдпрд╣рд╛рдБ рд╣реИ
рд╡реИрд╕реЗ рднреА рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдерд╛: error TS2352: Neither type 'Timer' nor type 'number' is assignable to the other.
рднрд▓реЗ рд╣реА рдореЗрд░реЗ рдкрд╛рд╕ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд╣рд┐рдд рдирд┐рд╣рд┐рдд рд╕рдВрджрд░реНрдн /// <reference path="node_modules/typescript/lib/lib.d.ts" />
рдЕрднреА рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реЛред
рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреЗ рдПрдирдкреАрдПрдо рдкреИрдХреЗрдЬ (рдХреЛрдгреАрдп 2) рдореЗрдВ рдЯреАрдПрд╕ + рдЯрд╛рдЗрдкрд┐рдВрдЧ (рдиреЛрдб, рдФрд░ рдЕрдиреНрдп) рдкреИрдХреЗрдЬ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
@rixrix (рдФрд░ рдХрд┐рд╕реА рдФрд░ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЗрд╕реЗ рдкрд╛рддрд╛ рд╣реИ) рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдереА рдЬрдм рддрдХ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рд╕рд╣реА рдорд╛рдкрджрдВрдбреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЧреБрдЬрд░ рд░рд╣рд╛ рдерд╛ред
рдЗрд╕рдХреА рддреБрд▓рдирд╛, рдЬреЛ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ms
рдФрд░ рдПрдХ рд░рд┐рдЯрд░реНрди NodeJS.Timer
:
function setTimeout(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer;
... рдФрд░ рдпрд╣, рдЬреЛ рджреВрд╕рд░рд╛ рдкреИрд░рд╛рдореАрдЯрд░ timeout
рд╡реИрдХрд▓реНрдкрд┐рдХ рдмрдирд╛рддрд╛ рд╣реИ рдФрд░ number
:
function setTimeout(handler: any, timeout?: any, ...args: any[]): number;
рдЗрди рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЯреАрдПрд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдПрдХ рдЙрдЪрд┐рдд рдЕрдзрд┐рднрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдкрдХреЛ error TS2352: Neither type 'Timer' nor type 'number' is assignable to the other
рдорд┐рд▓рддреЗ рд╣реИрдВ рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдПрдХ рдЯрд╛рдЗрдордЖрдЙрдЯ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ!
рд╣рд╛рдп @ рд╕рд┐рд░ рд╢реАрд░реНрд╖ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рджреЗрдиреЗ рдХрд╛ рдПрдХ рд╡рд╕реАрдпрддрдирд╛рдорд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЙрдХреНрдд рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЯреАрдХ рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рдпрд╛рдж рдХрд░ рд╕рдХрддрд╛ред рдорд╛рдлрд╝ рдХрд░рдирд╛ред
рдореЗрд░реЗ рд╕рд┐рд░ рдХреЗ рдКрдкрд░, рд╡рд╣ рдореБрджреНрджрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рдерд╛ рдЬрдм рд╣рдо Angular2 (рдЕрд▓реНрдлрд╛ рд░рд┐рд▓реАрдЬ) рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП рдЕрдкрдиреЗ рд╕реНрдкрд┐рди рдСрдл рд╡реЗрдм рдРрдк рдХрд╛ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рдЙрдиреНрдирдпрди рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░рд╛ рдореБрдЦреНрдп рдХреЛрдб рдЖрдзрд╛рд░ (рдПрдирдЬреА 1 рдФрд░ рдПрдирдЬреА 2) рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдмреЛрд╡рд░ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде, рдЕрдиреНрдп рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХрд╛ рдЧреБрдЪреНрдЫрд╛, рдФрд░ рдХреБрдЫ рдХрд╕реНрдЯрдо рдЯрд╛рдЗрдкрд┐рдВрдЧ) рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд╕рдордп рдПрдВрдЧреБрд▓рд░ 2 рд╢рд┐рдкрд┐рдВрдЧ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдиреЛрдб рдЯрд╛рдЗрдкрд┐рдВрдЧ рдЖрджрд┐ рдереЗред рд╕рдВрд╕реНрдХрд░рдг) рдФрд░ рдПрдирдЬреА 2 рдиреЛрдб рдЯрд╛рдЗрдкрд┐рдВрдЧ (рдФрд░ рд╕рдВрднрд╡рддрдГ рдЕрдиреНрдп рдЯрд╛рдЗрдкрд┐рдВрдЧ), рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЯреАрдПрд╕ рдХрдВрдкрд╛рдЗрд▓рд░ рдбреБрдкреНрд╕ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдорд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЖрдкрддреНрддрд┐рдЬрдирдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд╛рдирдирд╛ рдмрд╣реБрдд рд╣реА рдХрд╛рдо рд╣реИ рдХрд┐ рдХреБрдЫ рдмрд┐рдВрджреБ рд╣рдореЗрдВ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЦреАрдВрдЪрдиреЗ рд╣реЛрдВрдЧреЗред
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ Angular2 рд░рд┐рд▓реАрдЬ рдореЗрдВ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рдЯрд╛рдЗрдкрд┐рдВрдЧ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЪрд┐рдпрд░реНрд╕
@RyanCavanaugh рдХрд╛ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрд┐ рдореБрдЭреЗ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗ рд▓рд┐рдП рджреЛ рдЕрд╡рдЧреБрдг рд╣реИрдВред рдПрдХ number
рдФрд░ рджреВрд╕рд░рд╛ NodeJS.Timer
ред
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп window.setTimeout
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
NodeJS.Timer
рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ? рдпрд╣ рдЕрднреА рднреА рдПрдХ number
рд╕рд╣реА рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИ? рдХреНрдпрд╛ рдореИрдВ рдХреБрдЫ рднреВрд▓ рд░рд╣рд╛ рд╣реВрдБ?
@cchamberlain рдиреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдЯрд╛рдЗрдорд░ рд╡рд░реНрдЧ рджреЗрддрд╛ рд╣реИ: https://nodejs.org/api/timers.html
рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд┐рд░реНрдл number
ред
@Penryn - рдЯреАрдЖрдИрдПрд▓ -
рдЙрди рдЙрддреНрд╕реБрдХ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ setTimeout
.js рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдЕрдВрджрд░ setTimeout
рддреБрд▓рдирд╛ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдЪреАрдЬ рджреЗрддреА рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХреЗрд╡рд▓ рдПрдХ рдирдВрдмрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ; in.js рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдПрдХ рдмрдбрд╝реА рдЯрд╛рдЗрдорд░ рдСрдмреНрдЬреЗрдХреНрдЯ рджреЗрддрд╛ рд╣реИред
рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ рдЖрдк рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рд▓рдЧрднрдЧ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рд╡реЗрдм рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдиреЗ рдиреЛрдб рдкрд░рд┐рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рд╣реИред
@johnfn рднреА
setTimeout
рдпрд╛ setInterval
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдпрд╣рд╛рдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, window.setTimeout
рдпрд╛ interval
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рддрд╛рдХрд┐ tsc рдХреЛ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдЖрдк рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдЬреЛ рд╕рдВрдЦреНрдпрд╛ рджреЗрддрд╛ рд╣реИ ) рдФрд░ рдирд╣реАрдВ NodeJS рдлрд╝рдВрдХреНрд╢рди (рдЬреЛ рдХреБрдЫ рдФрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИ)ред
@AskYous рдкрд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреИрдХреЗрдЬреЛрдВ рдореЗрдВ @types/node
рд╣реИ, рддреЛ рдкреНрд░рдХрд╛рд░ рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП window.setInterval
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЬреЛ @angular
@angular-cli
рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ tsconfig.app.json
рдкрд░ рднреА рдиреЛрдб рд╣реИред
Eq:
tsconfig.app.json
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/app",
"module": "es6",
"baseUrl": "",
"types": ["node"] --> ADD THIS
},
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
рдореИрдВрдиреЗ рдЗрд╕реЗ рдпрд╣рд╛рдБ рдкрд╛рдпрд╛: https://stackoverflow.com/a/43952363/3415716
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкреИрдХреЗрдЬ рд╣реИ рдЬрд┐рд╕рдореЗрдВ setTimeout()
рдирд╛рдо рд╡рд╛рд▓рд╛ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╣реИред
рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рд▓рд┐рдП window.setTimeout
рдмрдЬрд╛рдп setTimeout
рдХрд░реЗрдВ :)
рдиреЛрдб рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рдХрд╛рд░ рдореЗрдВ NodeJS.Timer
рдЙрдкрдпреЛрдЧ global.setTimeout
рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рдХрд╛рд░ рдореЗрдВ number
window.setTimeout
рдЖрдЬ npm i @types/react @types/react-dom --save-dev
рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
@types\node
рдореЗрдВ рд▓реАрдХ node_modules
рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдпрд╣ рдкреИрджрд╛ рдХрд░ рд░рд╣рд╛ рдерд╛ Timer
рддреНрд░реБрдЯрд┐
@ Nippur72 рдХреА рддрд░рд╣, рдореИрдВ рдЖрдЬ react-dom
рд╕рд╛рде рдЗрд╕рдореЗрдВ рднрд╛рдЧ рдЧрдпрд╛ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдЙрдкрд╛рдп рд╣реИ @types
рдкреИрдХреЗрдЬ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛, рдЬреЛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдЙрдореНрдореАрдж рд╣реЛрдиреЗ рдкрд░ рдиреЛрдб рдкрд░ рдирд┐рд░реНрднрд░ рди рд╣реЛ, рдЗрд╕рд▓рд┐рдП: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/21310#issuecomment -367919251
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЗрд╕рдХреЗ рдмрдЬрд╛рдп
window.setTimeout
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред