Работает ли компилятор Angular 2 (ngc) с файлами определений Typescript?

Создание приложения Ionic 2, предназначенного для Windows 10 UWP. В моем коде я напрямую обращаюсь к API winrt, например

var localStorage = Windows.Storage.ApplicationData.current.localStorage;

Компиляция с помощью tsc работает, но когда я компилирую приложение с помощью ngc, выдает ошибку Cannot find namespace 'Windows'

Очевидно, что Angular AOT ничего не знает об API winrt, потому что он не работает в контексте UWP, но я подумал, что для этого и нужны файлы определений Typescript.

Но как мне обойти эту проблему? Я думал, что, возможно, включение файла определения Typescript решило бы эту проблему, но Typescript отлично компилируется.

Вот мои проекты, файл typings.json

{
  "dependencies": {},
  "devDependencies": {},
  "globalDependencies": {
    "winrt": "registry:dt/winrt#0.0.0+20160622234326",
    "angular-protractor": "registry:dt/angular-protractor#1.5.0+20160425143459",
    "core-js": "registry:dt/core-js#0.0.0+20160725163759",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160831021119",
    "selenium-webdriver": "registry:dt/selenium-webdriver#2.44.0+20160317120654"
  }
}

person Matt    schedule 07.10.2016    source источник


Ответы (1)


Я понял, как заставить это работать. По сути, вам нужно вручную добавить ссылку вверху вашего файла Typescript, а затем скомпилировать. Надеюсь, это поможет кому-то.

/// <reference path="../../typings/globals/winrt/index.d.ts" />

person Matt    schedule 08.10.2016