IntelliJ don't recognize Promise type in a basic Ionic2 project

intellij-idea, ionic2, typescript

Solution

Finally I have solved my problem with a workaround.

That solves the problems with all not recognized es2015 types into IDE:

Prerequisite: upgrade Idea IntelliJ to >2016.2.4

- First make sure that typescript is installed as global.

`npm install -g typescript` 2. Set in the settings the typescript version installed above

In Preferences > Languages & Frameworks > TypeScript > TypeScript version > Edit

Set the path to npm package. In my case: `/usr/local/lib/node_modules/typescript/lib`

Finally in the compiler options put on the option Set options manually instance of Use tsconfig.json

In some cases you should active the option Use TypeScript Service(Experimental)

Autocompletions works and no more problems with the inspector.

Problem

I am developing an Ionic 2 rc.1 app and I use idea intelliJ 2016.2.4. Project runs fine but the IDE don't recognize the typescript definition of Promise because it seems the type "is not included in tsconfig.json' The inspection error is: `Corresponding file is not included in tsconfig.json` my tsconfig.json look like that: ``` { "compilerOptions": { "allowSyntheticDefaultImports": true, "declaration": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "lib": [ "dom", "es2015" ], "module": "es2015", "moduleResolution": "node", "target": "es5" }, "exclude": [ "node_modules" ], "compileOnSave": false, "atom": { "rewriteTsconfig": false } } ``` if I remove node_modules from the "exclude" block then I do not have problem with the IDE inspection but the project run `ionic serve` fails in the lint phase. here is my package.json ``` { "name": "ionic-hello-world", "author": "Ionic Framework", "homepage": "http://ionicframework.com/", "private": true, "scripts": { "build": "ionic-app-scripts build", "watch": "ionic-app-scripts watch", "serve:before": "watch", "emulate:before": "build", "deploy:before": "build", "build:before": "build", "run:before": "build" }, "dependencies": { "@angular/common": "^2.0.0", "@angular/compiler": "^2.0.0", "@angular/compiler-cli": "0.6.2", "@angular/core": "^2.0.0", "@angular/forms": "^2.0.0", "@angular/http": "^2.0.0", "@angular/platform-browser": "^2.0.0", "@angular/platform-browser-dynamic": "^2.0.0", "@angular/platform-server": "^2.0.0", "@ionic/storage": "^1.0.3", "ionic-angular": "^2.0.0-rc.1", "ionic-native": "^2.2.3", "ionicons": "^3.0.0", "rxjs": "5.0.0-beta.12", "zone.js": "^0.6.21" }, "devDependencies": { "@ionic/app-scripts": "^0.0.36", "typescript": "^2.0.3" }, "cordovaPlugins": [ "cordova-plugin-device", "cordova-plugin-console", "cordova-plugin-whitelist", "cordova-plugin-splashscreen", "cordova-plugin-statusbar", "ionic-plugin-keyboard" ], "cordovaPlatforms": [ "ios@4.2.1", "android@5.2.2" ] } ``` Someone knows how to solve this problem? Thanks

Original source