【问题标题】:Navigator and window type error with TypeScript and Angular 2TypeScript 和 Angular 2 的导航器和窗口类型错误
【发布时间】:2017-08-27 00:31:02
【问题描述】:

我正在尝试在我的 Ionic 2 应用中使用 ng2-translate,其中:

this.translateService.setDefaultLang('en');
            if (this.platform.is('cordova')) {
                if (navigator.globalization) {
                    navigator.globalization.getPreferredLanguage(function (language) {

但我收到此错误

Typescript Error
Property 'globalization' does not exist on type 'Navigator'.
src/app/app.component.ts
if (this.platform.is('cordova')) {
    if (navigator.globalization) {

而且我在这行代码中与window.cordova有相同类型的错误:

if (this.platform.is('cordova') && window.cordova.plugins.Keyboard) {

我应该声明导航器类型还是什么?

【问题讨论】:

  • 试试:npm install @types/cordova --save-dev,可能有帮助...
  • 不,我仍然有错误

标签: angular typescript ionic2


【解决方案1】:

您缺少该导航器对象的 Typescript 输入信息。基本上,您看到的错误是 Typescript 编译器说,根据您迄今为止提供的类型定义,没有信息表明 navigator 对象具有 globalization 属性。

解决方案是为该导航器对象添加输入信息。

老实说,我不确定哪个包包含这些类型定义,但是从 Typescript v2(或 v2.1...不记得是哪个)开始,npm 将 Typescript 库的类型定义存储在 @types 命名空间下。

所以,你想要

npm install --save-dev @types/<some package>

将类型定义添加到您的项目中。

我猜一开始是:

@npm install --save-dev @types/cordova-ionic 

【讨论】:

  • 是的,我还不太懂 Typescript 打字。而且我不明白这如何促进编码......不像普通的javascript那样灵活。无论如何,npm install --save-dev @types/cordova-ionic 我仍然得到同样的错误,是否有任何数据库可以找到哪个包包含 navigator.globalization、window.cordova、navigator.userLanguage 的类型?
  • 我想我需要先添加 Ionic Native Globalization 插件。
猜你喜欢
  • 2016-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多