Vetur: `experimentalDecorators: true` in tsconfig.json is not working

Created on 2 Dec 2017  路  17Comments  路  Source: vuejs/vetur

  • [x] I have searched through existing issues
  • [x] I have read through docs
  • [x] I have read FAQ

Info

  • Platform: macOS
  • Vetur version: 0.11.3
  • VS Code version: 1.18.1

Problem



message: 'Experimental support for decorators is a feature that is subject to change in a future release. Set the 'experimentalDecorators' option to remove this warning.'

I've add and enable experimentalDecorators option in tsconfig.json, and I tried decorator in pure .ts file, there was no warnings.

Reproducible Case

My source code:

<template lang="pug">
  #app
    router-view
</template>
<script lang="ts">
import { Component, Vue } from 'vue-property-decorator'

@Component
export default class App extends Vue {
  name = 'app'
}
</script>
need-more-info

Most helpful comment

Still not working in a vue file with tsconfig "experimentalDecorators": true, "allowJs": true,
and vscode config "javascript.implicitProjectConfig.experimentalDecorators": true ,even with restart.

All 17 comments

I cannot reproduce this, can you provide a repo?

If you don't mind, you can checkout https://github.com/JounQin/Rubick/blob/master/src/views/landing/Login.vue for more details.

I cloned the repo and it works fine. You can try reloading editor.

screen shot 2017-12-04 at 10 04 41 am

@HerringtonDarkholme Oops, it really works today, but custom options for Vue plugin still does not work.

jietu20171204-102453 2x

There declarations are all in src/types/shim.d.ts, which makes them work in pure .ts file and can passthrough webpack's building step.

@JounQin I still cannot reproduce. Clicking on $v directs me to shim.d.ts.

Hmmm... I restarted my Mac and it works just well now, so magically.

@HerringtonDarkholme It seems if I modify global .d.ts file, vetur will not recognize that unless exiting and restarting vsc.

So is it as expected and should be documented?

I'm not sure if this is an issue of the language server or the VSCode plugin, but it doesn't work when you have a Workspace open. There is a workaround tho: Simply add a tsconfig.json to the workspace directory with the proper configuration. Then this will fix the issue in workspaces.

Still not working in a vue file with tsconfig "experimentalDecorators": true, "allowJs": true,
and vscode config "javascript.implicitProjectConfig.experimentalDecorators": true ,even with restart.

The issue is tracked here: https://github.com/vuejs/vetur/issues/424

Actually, I'm still confused with the cause of this issue, but set "include" path in tsconfig.json is working for me.

Before:

"include": [
    // "src/**/*.ts"
  ]

image

Worked After:

{
  "compileOnSave": true,
  "compilerOptions": {
    "module": "esnext",
    "moduleResolution": "node",
    "target": "es5",
    "lib": ["dom", "es2015", "es2016"],
    "sourceMap": false,
    "declaration": true,
    "experimentalDecorators": true,
    "jsx": "react",
    "outDir": "lib",
    "noUnusedLocals": false 
  },
  "exclude": [
    "node_modules",
    "static",
    "lib"
  ],
  "include": [
    "src/**/*.ts"
  ]
}

I'm happy if somebody can point out my mistakes in the config file.

include tells Vetur to load the specified files with the compilerOptions you have given. Not specifying it falls back to using the default compilerOptions which doesn't set experimentalDecorators.

It was not resolved by any of the above solutions, but it was fixed by updating vscode to the latest version.

It was not resolved by any of the above solutions, but it was fixed by updating vscode to the latest version.

I have latest version but I still can see the error when I do
export default @observer class MyPageName

I just put "experimentalDecorators": true in tsconfig.json

I just put "experimentalDecorators": true in tsconfig.json

If you set, please restart VSCode.
Still have problems, please open a new issue with template.

I just put "experimentalDecorators": true in tsconfig.json

If you set, please restart VSCode.
Still have problems, please open a new issue with template.

It's solved my problem. 馃馃

Was this page helpful?
0 / 5 - 0 ratings