У меня есть common-helper.ts в моем приложении angular 6, и я беру «Экспериментальная поддержка декораторов - это функция, которая может быть изменена в будущем выпуске. Установите опцию« ExperimentDecorators », чтобы удалить это предупреждение». У меня неправильное соглашение об именах? Потому что, когда я удаляю знак "-" и меняю имя файла на commonhelper.ts, ошибка исправляется. И когда я добавляю tsconfig.json файл "experimentalDecorators": true, ошибка не исправляется.

@Injectable({
  providedIn: 'root'
})
export class CommonHelper {

  constructor() { }

  }
}

Мой файл tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    //"emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ]
  }
}
4
realist 20 Сен 2018 в 12:01

2 ответа

Лучший ответ

В tsconfig.json :

"compilerOptions": {
    "experimentalDecorators": true,
    "allowJs": true,
...
}

Это то, о чем говорится в каждом другом комментарии / сообщении, которое я просматривал в Интернете по этому поводу ... и меня расстраивало ... но я понял, в чем разница:

РАЗМЕЩАЙТЕ ЭТО НАЧАЛО ОПЦИЙ КОМПИЛЯТОРА ПЕРЕД ЧЕМ-нибудь еще

Значит, что-то пошло не так из-за заказа. Надеюсь, это поможет? Поместите экспериментальные параметры и параметры allowJS в самый верх вашего объекта, прежде всего.

10
FiferJanis 25 Ноя 2018 в 06:12

Этот ответ SO сработал для меня.

Измените файл .csproj, добавив: <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>

8
Princess Innah 9 Фев 2019 в 16:12