Typescript: setTimeout - рдПрдХ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдордЖрдЙрдЯ рдЖрдИрдбреА рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ TS2323 рддреНрд░реБрдЯрд┐ рджреЗрддрд╛ рд╣реИ: рдЯрд╛рдЗрдк 'рдЯрд╛рдЗрдорд░' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдирд╣реАрдВ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЕрдХреНрддреВре░ 2014  ┬╖  24рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: microsoft/TypeScript

рд╕рдВрдХрд▓рди рдХрд░рддреЗ рд╕рдордп tsc v1.1.0-1 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
рддреНрд░реБрдЯрд┐ TS2323: рдЯрд╛рдЗрдк 'рдЯрд╛рдЗрдорд░' 'рд╕рдВрдЦреНрдпрд╛' рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдХреЛ рдлреЗрдВрдХрддрд╛ рд╣реИ:

this.sTimeout = setTimeout (() => this.showDelay (), 250);

sTimeout рдХреЛ рдПрдХ рдирдВрдмрд░ (рдирд┐рдЬреА рд╕рдВрд╕реНрдХрд░рдг) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЗрд╕рдХреЗ рдмрдЬрд╛рдп window.setTimeout рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

рд╕рднреА 24 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

OliverJAsh picture OliverJAsh  ┬╖  242рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

born2net picture born2net  ┬╖  150рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

fdecampredon picture fdecampredon  ┬╖  358рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nitzantomer picture nitzantomer  ┬╖  135рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Taytay picture Taytay  ┬╖  174рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ