Модуль ng не имеет экспортированных элементов в коде vs.

Я получаю сообщения об ошибках Module "ng" has no exported member при всех моих вводах в коде Visual Studio.

введите здесь описание изображения

введите здесь описание изображения

Мой набор текста работал на 100%, пока я не добавил angular-ui-router. Я не уверен, что это проблема, но я заметил это только после того, как добавил это.

В моих файлах .d.ts я получаю конкретную ошибку в самом angular.

введите здесь описание изображения

Мой tsd.json выглядит так

{
  "version": "v4",
  "repo": "borisyankov/DefinitelyTyped",
  "ref": "master",
  "path": "typings",
  "bundle": "typings/tsd.d.ts",
  "installed": {
    "angular-material/angular-material.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "jquery/jquery.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    },
    "angularjs/angular.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    },
    "angularjs/angular-route.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "angularjs/angular-cookies.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "angularjs/angular-animate.d.ts": {
      "commit": "5a8fc5ee71701431e4fdbb80c506e3c13f85a9ff"
    },
    "angularjs/angular-resource.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    },
    "angular-ui-router/angular-ui-router.d.ts": {
      "commit": "40c60850ad6c8175a62d5ab48c4e016ea5b3dffe"
    }
  }
}

Я немного потерялся в том, что я сделал или не сделал, чтобы все испортить. Странно то, что все до сих пор работает на 100%. Так что я все еще получаю intellsense для ng.. Он просто говорит, что есть ошибки, и каждый раз, когда я строю, я получаю несколько ошибок во всех файлах.

Обновить

В итоге я закомментировал import ng = angular; в строке 17, а затем изменил ng.auto.IInjectorService; на angular.auto.IInjectorService; в строке 173 в angular.d.ts.

Это означает, что каждая ссылка в приложении angular теперь создается с помощью angular, а не ng , что не идеально, но пока подойдет. Я почти уверен, что это не «лучшая практика».

https://github.com/DefinitelyTyped/DefinitelyTyped/issues/7284


person Community    schedule 20.12.2015    source источник
comment
Просто подсказка - здесь я попытался описать свои проблемы с UI-Router d.ts   -  person Radim Köhler    schedule 20.12.2015
comment
@RadimKöhler Это не сработало. Angular UI Router полностью уничтожает все, что вы печатаете. Как кто-то еще использует это?   -  person    schedule 20.12.2015
comment
Итак, он говорит, что у вас есть дубликат определения var angular. Твоя проблема как раз здесь. Вы знаете, где две декларации?   -  person Louay Alakkad    schedule 20.12.2015
comment
У меня была такая же проблема, один раз. Я думаю, что только что удалил выражение declare var angular... в файле определения типа.   -  person Frode    schedule 21.12.2015
comment
Итак, поработав над этим в течение дня, я все еще не уверен на 100%, что решило проблему, но каждый раз, когда я вношу изменения в набор текста, мне нужно закрыть vscode и снова открыть его. Кажется, это исправляет ошибки. Не уверен, почему, но это так. Я также оставил tsconfig.json пустым на данный момент.   -  person    schedule 21.12.2015


Ответы (1)


Проверьте везде, где вы установили angular-ui-router, наличие дополнительного файла .d.ts. Что-то типа

./bower_components/angular-ui-router/api/angular-ui-router.d.ts

Удалите этот файл .d.ts и перезапустите VSCode. Если его там нет, проверьте остальные папки вашего проекта на наличие дубликатов файлов .d.ts. Это то, что решило проблему для меня.

person Luke    schedule 22.12.2015