我正在使用Ionic 2来开发移动应用程序。以下是我的离子装置的信息:
我有一个extension.ts
文件,其中包含预定义类型的TypeScript / JavaScript的各种扩展,包括以下类:
export {};
declare global {
interface Navigator {
currentLang() : string;
}
}
Navigator.prototype.currentLang = function() {
var userLang = navigator.language.split('-')[0];
userLang = /(en|it)/gi.test(userLang) ? userLang : 'en';
return userLang;
};
当我运行命令ionic serve
时,Google开发者控制台会显示以下错误:
TypeError: navigator.currentLang is not a function
可能是什么问题? 我忘记了什么吗?
答案 0 :(得分:0)
此代码的已编译输出:
import { } from '../extensions';
console.log(navigator.currentLang());
假设默认模块选项为:
console.log(navigator.currentLang());
js文件中没有导入,因此当您尝试在浏览器中运行它时,它将无法加载../extensions.js
,因此navigator.currentLang
未定义。
这是因为您还没有从模块中导入任何内容。
语法是:
import '../extensions';
console.log(navigator.currentLang());
编译为:
require("../extensions");
console.log(navigator.currentLang());