javascript - 类型错误:navigator.currentLang 不是一个函数
我正在使用 Ionic 2 开发一个移动应用程序。以下是我的 Ionic 安装信息:
- Cordova CLI:6.3.1
- Ionic 框架版本:2.0.0-rc.4
- Ionic CLI 版本:2.1.18
- Ionic 应用库版本:2.1.9
- Ionic 应用脚本版本:0.0.47
- ios-deploy 版本:未安装
- ios-sim 版本:未安装
- 操作系统:Windows 10
- 节点版本:v6.9.2
- Xcode 版本:未安装
我有一个 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 时,谷歌开发者控制台显示以下错误:
TypeError: navigator.currentLang is not a function可能是什么问题呢?我是不是忘了什么?
答案#1
这段代码的编译输出:
import { } from '../extensions';
console.log(navigator.currentLang());
假设默认模块选项是:
console.log(navigator.currentLang());
js 文件中没有 import,所以当你尝试在浏览器中运行它时,它不会加载 ../extensions.js,因此 navigator.currentLang 是未定义的。
这是因为你实际上并没有从模块中导入任何内容。
其语法为:
import '../extensions';
console.log(navigator.currentLang());
编译为:
require("../extensions");
console.log(navigator.currentLang());
