打字稿:导航器与lib.d.ts合并

时间:2016-11-02 14:10:05

标签: typescript typescript-typings typescript2.0

我对与lib.d.ts合并感到困惑。我正在尝试向Navigator添加属性。我想我需要合并在lib.d.ts中声明的Navigator接口。我使用的是TS 2.0.6。

这是我的代码:

let lang = navigator.language || navigator.userLanguage; 

产生此错误:

  

Property' userLanguage'在' Navigator'。

类型中不存在

我尝试以这种方式进行合并:

interface Navigator {
    userLanguage: string;
}

但是,仍然找不到userLanguage属性......

有人可以帮我理解我可以在何处以及如何与lib.d.ts声明合并?

感谢您

2 个答案:

答案 0 :(得分:2)

原来我没有意识到我必须创建一个带有界面的navigator.d.ts文件。在我的项目中创建该文件后,错误消失了。

我不需要使用///<参考......

答案 1 :(得分:1)

创建类型定义文件的另一种方法,例如在接受的答案中,是使用字​​符串文字访问“ userLanguage”属性,如下所示:

navigator['userLanguage'] //=> OK

navigator.userLanguage //=> TS2339: Property ‘userLanguage’ does not exist on type ‘Navigator’