gpt4 book ai didi

TypeScript - 重复标识符

转载 作者:搜寻专家 更新时间:2023-10-30 21:40:51 25 4
gpt4 key购买 nike

在我的 TypeScript 2.0 代码中(在 Visual Studio 2015 中),我有:

var lang = navigator.language 
? navigator.language
: navigator.systemLanguage;

有了这个,我得到了这个错误:

Build:Property 'systemLanguage' does not exist on type 'Navigator'.

但是,如果我将它添加到我的一个 d.ts 文件中:

interface Navigator {
systemLanguage: string;
}

然后我得到:

TS2300  Duplicate identifier 'systemLanguage'.

我如何打破这个 TypeScript 僵局?

最佳答案

根据您的问题,我推断navigatorNavigator 类型的变量。从您发布的第一个错误来看,我猜想问题是 (1) Navigator 界面没有名为 systemLanguage 的属性,或者 (2) 您在您的代码文件中没有指定 navigatorNavigator 类型。从您发布的第二个错误来看,我相当确定您的问题是由于问题 (2) 造成的。

由于 Typescript 编译所有 .ts 文件,当您添加带有 systemLanguage 属性的 Navigator 接口(interface)时,它发现已经有另一个同名和相同的接口(interface)属性,因此是第二个错误。

我认为您需要做的是 (1) 找到 Navigation 的定义位置,(2) 将该定义导入到包含您首先引用的代码的文件中,以及 (3) 输入 navigator 类型为 Navigator

编辑:这是一个例子:

// your-code-file.ts
import Navigator from './path-to-code-file-with-navigator/navigator.ts'

...

let navigator:Navigator = ...;

...

var lang = navigator.language
? navigator.language
: navigator.systemLanguage;


// navigator.ts
interface Navigator {
language: string;
systemLanguage: string;
}

关于TypeScript - 重复标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40875366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com