0

构建面向 Windows 10 UWP 的 Ionic 2 应用程序。在我的代码中,我直接访问 winrt API,就像这样

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

使用 tsc 编译可以,但是当我使用 ngc 编译应用程序时,它会引发错误Cannot find namespace 'Windows'

显然,Angular AOT 不会知道有关 winrt Api 的任何信息,因为它不在 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"
  }
}
4

1 回答 1

1

我想出了如何使这项工作。基本上,您需要在 Typescript 文件的顶部手动添加引用,然后进行编译。希望这可以帮助某人。

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

于 2016-10-08T02:32:35.443 回答