我为商店语言选项编写了一个数组。
public languageOptions:Array<Object> = [
{
name: 'English',
value: 'en'
},
{
name: 'France',
value: "fr"
}
];
我想将英语设为默认语言。我是按照以下方式做到的,
private static readonly DEFAULT_LANGUAGE: string = 'en';
但我想直接从对象数组中设置' en '值,
private static readonly DEFAULT_LANGUAGE: string = languageOptions[0].value;
但是当我写这篇文章时,它会出现以下错误
[ts]找不到名称'languageOptions'
有人可以帮我解决这个问题。请建议如何从数组对象访问'en'。谢谢。
答案 0 :(得分:2)
您应该使用 this
export class App {
languageOptions = [
{
name: 'English',
value: 'en'
},
{
name: 'France',
value: "fr"
}
];
private readonly DEFAULT_LANGUAGE = this.languageOptions[0].value;
}
<强> DEMO 强>
答案 1 :(得分:0)
您无法从静态成员初始化(对于languageOptions
)访问实例成员(在您的情况下称为非静态,DEFAULT_LANGUAGE
)。
另外,不要将数组键入为Array<object>
,这样就不会让编译器进行推理并帮助您解决问题。只需使用:
public static languageOptions = [
{
name: 'English',
value: 'en'
},
{
name: 'France',
value: "fr"
}
];