Cannot find namespace NodeJS when using NodeJS.Timer in Ionic 2

Solution 1:

Open src/tsconfig.app.json*.

Add "node" to the "types" array.

Example:

{
  "extends": "../tsconfig.json",
  "compilerOptions": {
    "outDir": "../out-tsc/app",
    "baseUrl": "./",
    "module": "es2015",
    "types": [
      "node"
    ]
  },
  "exclude": [
    "test.ts",
    "**/*.spec.ts"
  ]
}

*if this file does not exist add the specified part to tsconfig.json in root folder.

Solution 2:

A quick way to solve this problem is here.

Basically change setTimeout and clearInterval to window.setTimeout and window.clearInterval, respectively. For example, your onDown becomes:

onDown(e: Event) {
    this.touchTimeout = window.setTimeout(() => {
        this.draggable = true;
    }, this.dragDelay);
}

Then, your declaration becomes:

this.touchTimeout: number | undefined;