npm install npm run grunt tsd
Open project in intellij. Bugs are localed in
| # Created by .ignore support plugin (hsz.mobi) | |
| /node_modules/ | |
| phantomjsdriver.log | |
| /.tscache/ | |
| *.js.map | |
| *.js | |
| typings/ | |
| .idea/ | |
| reference.js |
| ///<reference path="typings/tsd.d.ts"/> | |
| import Rx = require('rx'); | |
| var cok = Rx.Observable.fromPromise(browser.manage().getCookie('test')); | |
| cok.map(function(val, idx, src) { | |
| // type inference is broken in intellij (works fine in sublime) | |
| return val.value; | |
| }); |
| ///<reference path="typings/tsd.d.ts"/> | |
| import Rx = require('rx'); | |
| class Y { | |
| el: string[] = ['a','b','c'] | |
| } | |
| class X { | |
| constructor(public data: Y[], public str: string) { | |
| } | |
| } | |
| var x = new X([new Y], "test"); | |
| var source = Rx.Observable.of(x); | |
| source.map(function(x_with_infered_type) { | |
| // type inference sort of works on this level | |
| return x_with_infered_type.; // i ctrl+space show "data, el, str" and others so not really ok | |
| }).map(function(y_arr) { | |
| y_arr. // ctrl+space shows data, el, str | |
| // type inference is broken in intellij works in sublime | |
| //y_arr[0]. | |
| }) |
| module.exports = function (grunt) { | |
| grunt.initConfig({ | |
| ts: { | |
| default: { | |
| src: ["reference.ts", "bug.ts", "bug2.ts"], | |
| reference: "reference.ts", | |
| options: { | |
| module: "commonjs" | |
| } | |
| } | |
| }, | |
| tsd: { | |
| default: { | |
| options: { | |
| // execute a command | |
| command: 'reinstall', | |
| //optional: always get from HEAD | |
| latest: true, | |
| // specify config file | |
| config: 'tsd.json', | |
| // experimental: options to pass to tsd.API | |
| opts: { | |
| // props from tsd.Options | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| grunt.loadNpmTasks('grunt-ts'); | |
| grunt.loadNpmTasks('grunt-tsd'); | |
| grunt.loadNpmTasks('grunt-traceur'); | |
| grunt.registerTask('default', ['tsd','ts']); | |
| } |
| { | |
| "name": "typescript-type-inference-bug", | |
| "version": "0.0.0", | |
| "description": "Bug in intellij with typescript", | |
| "main": "index.js", | |
| "scripts": { | |
| "grunt": "grunt" | |
| }, | |
| "license": "ISC", | |
| "dependencies": { | |
| "grunt": "~0.4.5", | |
| "rx": "^2.5", | |
| "grunt-ts": "~4.2.0-beta.1" | |
| }, | |
| "devDependencies": { | |
| "grunt-tsd": "~0.2.0-beta.1", | |
| "tsd": "~0.5.7" | |
| } | |
| } |
| //grunt-start | |
| /// <reference path="bug.ts" /> | |
| /// <reference path="bug2.ts" /> | |
| //grunt-end |
| { | |
| "version": "v4", | |
| "repo": "borisyankov/DefinitelyTyped", | |
| "ref": "master", | |
| "path": "typings", | |
| "bundle": "typings/tsd.d.ts", | |
| "installed": { | |
| "angular-protractor/angular-protractor.d.ts": { | |
| "commit": "76e1dedf0bada455c0b75abeec3206d3aa5bd892" | |
| }, | |
| "selenium-webdriver/selenium-webdriver.d.ts": { | |
| "commit": "76e1dedf0bada455c0b75abeec3206d3aa5bd892" | |
| }, | |
| "rx/rx.d.ts": { | |
| "commit": "76e1dedf0bada455c0b75abeec3206d3aa5bd892" | |
| }, | |
| "rx/rx-lite.d.ts": { | |
| "commit": "76e1dedf0bada455c0b75abeec3206d3aa5bd892" | |
| }, | |
| "rx/rx.time-lite.d.ts": { | |
| "commit": "76e1dedf0bada455c0b75abeec3206d3aa5bd892" | |
| }, | |
| "rx/rx.time.d.ts": { | |
| "commit": "76e1dedf0bada455c0b75abeec3206d3aa5bd892" | |
| } | |
| } | |
| } |