tsc v1.1.0-1μ μ¬μ©νλ©΄ μ»΄νμΌ ν λ μ€λ₯κ° λ°μν©λλ€.
μ€λ₯ TS2323 : 'νμ΄λ¨Έ'μ νμ 'μ«μ'μ νμ ν λΉ ν μ μμ΅λλ€.
λ€μ μ½λλ μ»΄νμΌ μ€λ₯λ₯Ό λ°μμν΅λλ€.
this.sTimeout = setTimeout (() => this.showDelay (), 250);
sTimeoutμ μ«μ (κ°μΈ var)λ‘ μ μλ©λλ€.
μμ ν μλ₯Ό κ²μνμμμ€. μ§κΈκΉμ§ μ 곡λ μ 보λ‘λ λ¬Έμ λ₯Ό μ¬ννκΈ°μ μΆ©λΆνμ§ μμ΅λλ€.
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
κ° κΈ°λ³Έ μ 곡 ν¨μκ° μλλΌ λ€λ₯Έ λ°ν κ°μ κ°μ§ λ€λ₯Έ μ¬μ©μ μ μ ν¨μλ₯Ό μ°Έμ‘°νλ€κ³ μκ°ν©λλ€.
μ체μ μΌλ‘ μμ λ₯Ό μλνμ΅λλ€. λ΄ λꡬ μ²΄μΈ λλ λ€λ₯Έ μ½λμ κ΅¬μ± μμλ‘ μΈν΄ λ°μν κ² κ°μ΅λλ€. μκ°μλ΄μ΄ μ£μ‘ν©λλ€. κ°μ¬ν©λλ€ ... λ«ν ...
λ―Έλμ λ
μλ₯Ό μν΄ node.jsμ λͺ
νν μ μλ‘ μΈν΄μ΄ μ€λ₯κ° λ°μνμ΅λλ€. ν΄κ²°μ±
μ μ νμ μ 체 μ΄λ¦μ μ¬μ©νλ κ²μ
λλ€. NodeJS.Timer
μλλΌ Timer
NodeJS.Timer
Timer
(μ¬νκ²λ Typescript νΈλμ€ νμΌλ¬κ° μ μν κ²μ΄λ©° μλνμ§ μμ΅λλ€).
@jdfreder time
μ΄μ¨λ λμΌν λ¬Έμ κ° λ°μνμ΅λλ€. error TS2352: Neither type 'Timer' nor type 'number' is assignable to the other.
νμΌ λ§¨ μμ μμ μ μ°Έμ‘°κ° μ μλμ΄ μμ§λ§ /// <reference path="node_modules/typescript/lib/lib.d.ts" />
μ¬μ ν μλνμ§ μμ΅λλ€.
μ£Όλ λ¬Έμ λ νμ¬ npm ν¨ν€μ§ (angular2) μ€ νλμ TS + νμ΄ν (λ Έλ λ° κΈ°ν)μ΄ ν¨ν€μ§μ ν¬ν¨λμ΄ μλ€λ κ²μ λλ€.
@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;
μ΄ λ κΈ°λ₯μ κΈ°λ°μΌλ‘ TSλ μ μ ν μ€λ²λ‘λλ₯Ό μ¬λ°λ₯΄κ² μ ννλ―λ‘ error TS2352: Neither type 'Timer' nor type 'number' is assignable to the other
κ° λ°μνλ©΄ μκ° μ νμ μ§μ ν΄μΌν©λλ€!
μλ νμΈμ @ Penryn κ°μ¬ν©λλ€!
μ΄μ μ견μ ν΄λΉ μ€λ₯ λ©μμ§μ λν μ νν μΈλΆ μ 보λ₯Ό λ μ΄μ κΈ°μ΅ν μ μκΈ° λλ¬Έμ μΆ©λΆν μΈλΆ μ 보λ₯Ό μ 곡νμ§ μμλ€λ μ¦κ±°λΌκ³ μκ°ν©λλ€. μ£μ‘ν©λλ€.
μ 머리 μμ μ°λ¦¬κ° μ΄μ μ κ²ͺμλ λ¬Έμ λ Angular2 (μν 릴리μ€)λ‘ μμ±λ μ€ν μ€ν μΉ μ±μ μ μ§μ μΌλ‘ μ κ·Έλ μ΄λ ν λμμ΅λλ€. μ°λ¦¬μ μ£Όμ μ½λλ² μ΄μ€ (ng1 λ° ng2)λ TypeScript (bower κ΅¬μ± μμ, λ€λ₯Έ νμ΄ν, λͺ κ°μ§ μ¬μ©μ μ§μ νμ΄ν ν¬ν¨)λ‘ μμ±λμμΌλ©°, λΉμ Angular2λ νμ΄ν, λ Έλ νμ΄ν λ±λ μ 곡νμ΅λλ€. λ Έλ νμ΄ν (ꡬμ λ²μ ) λ° ng2 λ Έλ μ ν (λ° κ°λ₯ν λ€λ₯Έ μ ν), ν¨κ³Όμ μΌλ‘ TS μ»΄νμΌλ¬λ dups μ νμ λν΄ νΌλμ€λ¬μν©λλ€. μ°λ¦¬μ κ²½μ°μλ λ¬Έμ κ°λλ νμ΄νμ μλμΌλ‘ μμ ν μ μμ§λ§ μ΅μ λ²μ μ κ°μ ΈμμΌνλ€λ μ μ μλ κ²μ λ무 λ§μ μμ μ λλ€.
νμν νμ΄νμ μλμΌλ‘ μ€μΉν΄μΌνλ―λ‘ μ΅κ·Ό Angular2 릴리μ€μμμ΄ λ¬Έμ κ° ν΄κ²°λμλ€κ³ μκ°ν©λλ€.
건배
@RyanCavanaugh μλ λμΌν λ¬Έμ κ° μμ΅λλ€. setTimeoutμ λν΄ λ κ°μ§ μ μκ° μμ΅λλ€. νλλ number
λ₯Ό λ°ννκ³ λ€λ₯Έ νλλ NodeJS.Timer
λ°νν©λλ€.
λμ window.setTimeout
μ¬μ©νμμμ€.
NodeJS.Timer
μ νΉμ μ νμ΄ νμν μ΄μ λ 무μμ
λκΉ? μ¬μ ν number
λ₯Ό λ°ν ν κ²μ
λλ€. λ΄κ° λκ°λ₯Ό λμΉκ³ μμ΅λκΉ?
@cchamberlain λ Έλλ μ€μ λ‘ μ 체 Timer ν΄λμ€λ₯Ό λ°νν©λλ€ : https://nodejs.org/api/timers.html
μ΄ κ²½μ°μλ number
λ§μ΄ μλλλ€.
@Penryn -TIL π
κΆκΈν μ¬λλ€μ μν΄ μ΄κ²μ΄ μΌμ΄λλ μ΄μ λ node.jsμ setTimeout
κ° λΈλΌμ°μ λ΄μμ setTimeout
μ λ€λ₯Έ κ²μ λ°ννκΈ° λλ¬Έμ
λλ€. λΈλΌμ°μ μ setTimeoutμ μ«μ λ§ λ°νν©λλ€. node.jsμμ setTimeoutμ ν° Timer κ°μ²΄λ₯Ό λ°νν©λλ€.
λ°λΌμμ΄ λ¬Έμ κ° λ°μνλ μ΄μ λ μΉμ λμμΌλ‘νλ €κ³ νμ§λ§ λ Έλ μ μλ₯Ό κ°μ Έ μκΈ° λλ¬Έμ λλ€.
@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
μ€λ μ΄κ²μ λ§λ¬μ΅λλ€. κ°μ₯ κ°λ¨ν ν΄κ²°μ±
μ λΈλΌμ°μ νκ²½μ΄ μμ λ λ Nodeμ μμ‘΄νμ§ μλλ‘ @types
ν¨ν€μ§λ₯Ό μ
λ°μ΄νΈνλ κ²μ΄λ―λ‘ https://github.com/DefinitelyTyped/DefinitelyTyped/issues/21310#issuecomment -367919251
κ°μ₯ μ μ©ν λκΈ
λμ
window.setTimeout
μ¬μ©νμμμ€.