Incorrect TS1219 warning

-- Temporary Fix. Shutdown Webstorm and deleted the .idea folders and it realised that the files it thought were broken weren't. Unfortunately new files are getting the warning until I repeat this. it's a massive pain in the a**e.

 

I'm having a minor annoyance with the latest version of webstorm, it's got a liberal smattering of TS1219 errors on my Angular 2 project targeting @Component() @Input() etc, but not in all files.

It compiles fine as I have the experimentalDecorators set to true, but it's annoying to have red splattered all over the place.

 

This one is fine:

This one isn't:



40 comments
Comment actions Permalink

Do you mean that you get TS1219 errors despite having experimentalDecorators enabled in your tsconfig.json? What does your config look like? How many tsconfig.json files do you have in your project?

Also, please can you provide full output from TypeScript tool window, Errors tab, shown for the file that is red-highlighted? What IDE version do you work with?

0
Comment actions Permalink

I don't get the errors in compile, just in the IDE, lots of files are marked as having errors, and lots of lines are underlined in red. It gets in the way of spotting real errors.

I have 2 and they look like:

{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"noEmit": true,
"noEmitHelpers": true,
"importHelpers": true,
"strictNullChecks": false,
"lib": [
"dom",
"es7"
],
"typeRoots": [
"node_modules/@types"
],
"types": [
"hammerjs",
"jasmine",
"node",
"source-map",
"uglify-js",
"webpack"
]
},
"exclude": [
"node_modules",
"dist",
"**/*.spec.ts"
],
"awesomeTypescriptLoaderOptions": {
"forkChecker": true,
"useWebpackText": true
},
"compileOnSave": false,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}

and

{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"sourceMap": true,
"noEmit": true,
"noEmitHelpers": true,
"importHelpers": true,
"strictNullChecks": false,
"lib": [
"es2015",
"dom"
],
"typeRoots": [
"node_modules/@types"
],
"types": [
"hammerjs",
"node"
]
},
"exclude": [
"node_modules",
"dist",
"**/*.spec.ts",
"**/*.e2e.ts"
],
"awesomeTypescriptLoaderOptions": {
"forkChecker": true,
"useWebpackText": true
},
"angularCompilerOptions": {
"genDir": "./compiled",
"skipMetadataEmit": true
},
"compileOnSave": false,
"buildOnSave": false,
"atom": {
"rewriteTsconfig": false
}
}


The IDE version is: WebStorm 2016.3.4 Build #WS-163.13906.20, built on March 7, 2017

0
Comment actions Permalink

Where are these files located? What TypeScript version is chosen in Preferences | Languages & Frameworks | TypeScript?

Output from Error tab would still be appreciated

0
Comment actions Permalink

The files are located in, or a subfolder of a folder called app, which is located directly below the root.

 

Where do I find the error tab?

0
Comment actions Permalink

In TypeScript tool window

0
Comment actions Permalink

Ok this is what's showing up:

0
Comment actions Permalink

So, WebStorm has failed to find a tsconfig.json your file belongs to. What TypeScript version is chosen in Preferences | Languages & Frameworks | TypeScript? Do you have any symlinks/junctions in your project?

0
Comment actions Permalink

Typescript version is 2.2.2, there are no symlinks or junctions in the project.

0
Comment actions Permalink

Try using the bundled TypeScript instead - does the problem persist?

0
Comment actions Permalink

The issue goes away using the bundled version of typescript

0
Comment actions Permalink

I see. So it seems that the service support in 2016.3 is not compatible with TypeScript 2.2.2. Please try upgrading to 2017.1.2

0
Comment actions Permalink

I have the same issue with intelliJ 2017.2.1. I use the bundled version (2.4.1) and still get this annoying warning. 

0
Comment actions Permalink

What warning, sorry? Is it about 'cannot find parent tsconfig.json' message? This warning indicates that file your are currently editing is not included in any tsconfig.json file

0
Comment actions Permalink

No. I am talking about the experimentalDecorators warning coloring the code in red even though it is enabled.

0
Comment actions Permalink

Most probably it's still the same issue - your current .ts file is not included in any tsconfig.json file, thus the default preferences are used for transpiling

0
Comment actions Permalink

I get this error ('cannot find parent tsconfig.json') just by using 2017.3 beta

If I run 2017.2.4 - no issue

0
Comment actions Permalink

Please provide a project that shows up the issue. Also, what TypeScript version is chosen in Settings | Languages & Frameworks | TypeScript?

0
Comment actions Permalink

I'm having this issue as well, Settings | Languages & Frameworks | TypeScript shows: "2.6.2 (node_modules)"

I'm running IntelliJ Ultimate, 2017.2

My tsconfig.json looks like: 

{
"compilerOptions": {
"sourceMap": true,
"target": "es5",
"jsx": "react",
"module": "es6",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"declaration": false,
"noImplicitAny": false,
"noImplicitReturns": false,
"removeComments": true,
"strictNullChecks": false,
"outDir": "build",
"lib": [
"es6",
"es7",
"dom"
]
},
"exclude": [
"dist",
"build",
"node_modules"
]
}

And tslint.json:

{
"extends": "tslint-config-airbnb",
"compilerOptions": {
"experimentalDecorators": true,
"allowJs": true
}
}

Removing the `.idea.` folder and re-opening the project fixes it for a while, but the problem comes back, not sure what triggers it to return yet.

0
Comment actions Permalink

Ah, I just understood what you meant - apparently IntelliJ doesn't handle "include" in tsconfig.json the same as typescript does?

Adding an "include" section to tsconfig.json fixed the issue:

"include": [
"src",
"types"
]


People will keep having this problem though, since not specifying "include" at all seems to common in several of the popular react+typescript boilerplate projects.

I got this tsconfig.json from https://github.com/mobxjs/mobx-react-typescript-boilerplate/blob/master/tsconfig.json

0
Comment actions Permalink

>apparently IntelliJ doesn't handle "include" in tsconfig.json the same as typescript does?

Not sure where this conclusion come from... IDEA handles it EXACTLY in the same way as the tsc compiler; moreover, it uses the typescript tsserver service for this, it's not the own IDE functionality. No "include" is required - everything that is not excluded is included

>Settings | Languages & Frameworks | TypeScript shows: "2.6.2 (node_modules)"

that's the issue - tsserver integration doesn't work with TypeScript 2.6 due to breaking API changes, it's fixed in 2017.3. You have to either upgrade IDEA or change the TypeScript version to the bundled one

0
Comment actions Permalink

Btw I'm experiencing same sort of issues (Tsconfig not found or it is not taken into account properly) with 2017.3, ts 2.6.2, but issues disappear if using bundles 2.6.1 version

0
Comment actions Permalink

I have a similar issue for a different error code, but don't know how to solve it. In my case the error is TS2551, it appears in each file and I am using Intellij. The error marks go away, as soon as I close the file and relaunch Intellij. After opening the ts-file again, error messages appear again. Any idea what I could do?

0
Comment actions Permalink

@Chris, could you please provide more details on your issue:

1) full output of Errors tab of TypeScript tool window,

2) tsconfig.json and its location,

3) version of TS selected in TS settings (Settings (Preferences) | Languages & Frameworks | TypeScript),

4) IDE version

0
Comment actions Permalink

Dear Oksana,

1) just realized there are actually two different errors:

  • TS2304: Cannot find module name [VARIABLE]
  • TS2551, TS2339: Property [VARIABLE] does not exist on type [VARIABLE]

2) sorry, I am not sure what you mean by tsconsig json? I am contributing to a project that had been set up already and never dealt with typescript before...

3) Bundled 2.8.1

4) Intellij Idea Ultimate (2018.1.5)

0
Comment actions Permalink

1) please provide a screenshot of the complete output of TS Errors tab.

2) it's a TypeScript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

0
Comment actions Permalink

WebStorm 2018.1.4 still experiencing the same issue.

 



tsconfig.json :

{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"noImplicitAny": true,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"declaration": false,
"sourceMap": true,
"noUnusedParameters": true,
"skipLibCheck": true,
"lib": [
"dom",
"dom.iterable",
"es7",
"scripthost",
"es2017"
],
"types": [
"node",
"jasmine",
"cordova-plugin-network-information",
"jest"
],
"baseUrl": ".",
"paths": {
"@mocks/*": ["src/common/core/mocks/*"],
"@common/*": ["src/common/*"]
}
},
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"coverage",
"resources",
"plugins",
"platforms",
"www"
],
"compileOnSave": false,
"atom": {
"rewriteTsconfig": false
},
"awesomeTypescriptLoaderOptions": {
"forkChecker": true,
"useWebpackText": true,
"useCache": true
}
}

0
Comment actions Permalink

Passing --tsConfigFile tsconfig.json to options fixes the issue.

0
Comment actions Permalink

I am also seeing the experimentalDecorators error in Intellij 2018.2.1. Adding --tsConfigFile tsconfig.json to options did not work for me. I have tried the bundled typescript version and or Angular Cli typescript version. Both have the same issue. This use to all work without issues in early versions of 2017. Now it has been rather flaky.

TSCONFIG.JSON

{
"compileOnSave": false,
"compilerOptions": {
"outDir": "./dist/out-tsc",
"baseUrl": "src",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2016",
"dom"
]
},
"include": [
"src/**/*"
]
}

0
Comment actions Permalink

>Adding --tsConfigFile tsconfig.json to options did not work for me

options specified in this field are only respected if the project doesn't have any tsconfig.*.json files

>I am also seeing the experimentalDecorators error in Intellij 2018.2.1. 

what file(s) is it shown for? Please provide a screenshot of Typescript tool window with the error

Please make sure that tsconfig.*.json file this file is included in has "experimentalDecorators" enabled. Note that tsconfig.app.json, tsconfig.spec.json, etc. are also considered (they were not respected in 2017.x)

0
Comment actions Permalink

> options specified in this field are only respected if the project doesn't have any tsconfig.*.json files

Thanks for informing about the options. I did not know that.

 

> what file(s) is it shown for? Please provide a screenshot of Typescript tool window with the error

Since commenting I tried a couple other things. I changed back to the bundled version and created a custom scope which points at my .ts locations. So far the warning has not came back. I am not sure what made the difference. If it was the change to use the bundled version (maybe needed some time to reindex everything? ) or if it was changing my project scope? If it comes back I will try to add some more details to this thread.

1

Please sign in to leave a comment.