我正在使用 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 不是函数
可能是什么问题? 我是不是忘记了什么?
最佳答案
这段代码的编译输出:
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());
关于javascript - TypeError : navigator. currentLang 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41485410/