我要
使用可变的“图层”,然后再进行分配。
此处:if(layer == null || layer == undefined){
public static myFunc(type: number) {
var layer: VectorLayer;
if (type === 1) {
layer = Map.getStaticVariableOne();
} else if (type === 2) {
layer = Map.getStaticVariableTwo();
}
if(layer == null || layer == undefined){
return;
}
Utils.doThings(layer);
}
我在Typescript中做错了吗?
答案 0 :(得分:1)
只需检查layer
是否存在:
if (!layer) {
return;
}
Utils.doThings(layer);
要检查更多详细信息,不仅要针对真实值:
if (layer === undefined || layer === null) { // Or just layer == null
return;
}
Utils.doThings(layer);
答案 1 :(得分:0)
这是TypeScript的怪癖。
要暂时解决此问题,您可以执行“类型转换”以告诉编译器在使用addHeader
时未定义。
layer
或者,您可以执行以下操作(tested):
Utils.doThings(<VectorLayer> layer);
// alternatively
// Utils.doThings(layer as VectorLayer);
主要区别在于,您可以将图层指定为public static myFunc(type: number) {
var layer: VectorLayer | undefined = undefined;
if (type === 1) {
layer = TestMap.getStaticVariableOne();
} else if (type === 2) {
layer = TestMap.getStaticVariableTwo();
}
if (layer === null || layer === undefined){
return;
}
Utils.doThings(layer);
}
,并将其明确设置为undefined
。然后,您只需要检查一下以确保它没有未定义即可。