Typescript:Navigator 与 lib.d.ts 合并
我对与 lib.d.ts 合并感到困惑。我正在尝试向 Navigator 添加一个属性。我认为我需要与在 lib.d.ts 中声明的 Navigator 接口合并。我正在使用 TS 2.0.6。
这是我的代码:
let lang = navigator.language || navigator.userLanguage;
这会产生此错误:
类型 'Navigator' 上不存在属性 'userLanguage'。
我尝试过用这种方式进行合并:
interface Navigator {
userLanguage: string;
}
但是,仍然找不到 userLanguage 属性...
有人能帮我理解在哪里以及如何与 lib.d.ts 声明合并吗?
谢谢
答案#1
结果我没有意识到我必须创建一个包含接口的 navigator.d.ts 文件。一旦在我的项目中创建了该文件,错误就消失了。
我不需要使用 ///< 引用...
答案#2
创建类型定义文件的另一种方法,如认可的答案所示,是使用字符串字面量访问“userLanguage”属性,如下所示:
navigator['userLanguage'] //=> OK
navigator.userLanguage //=> TS2339: Property ‘userLanguage’ does not exist on type ‘Navigator’
