TypeScript 和 Angular 2 的导航器和窗口类型错误



>我正在尝试在我的 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) {

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

您缺少该导航器对象的 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 

相关内容

  • 没有找到相关文章

最新更新