#typescript
#typescript
Вопрос:
Я скорее новичок в TypeScript (чтобы было ясно, я пришел из вселенной Java). В настоящее время я пытаюсь создать такой mapper:
public getApercuTypePrestationFromTypePrestationEX044(typePrestationEX044: TypePrestationEX044): ApercuTypePrestation {
let apercuTypePrestation: ApercuTypePrestation;
if (null != typePrestationEX044) {
apercuTypePrestation = new ApercuTypePrestation();
apercuTypePrestation.codeTypePrestation == typePrestationEX044.code;
apercuTypePrestation.libelleTypePrestation == typePrestationEX044.libelle;
}
console.log("A = " typePrestationEX044.code);
console.log("B = " apercuTypePrestation.libelleTypePrestation);
return apercuTypePrestation;
}
Но это, очевидно, не работает: в консоли у меня есть:
A = A8C
B = не определено
Как я могу это исправить?
Комментарии:
1. Можете ли вы указать, какой объект вы передаете этой функции? Возможно ли это
apercuTypePrestation.libelleTypePrestation
undefined
?
Ответ №1:
Вы используете ==
вместо =
. У меня есть изменения ==
=
, теперь они должны работать.
public getApercuTypePrestationFromTypePrestationEX044(typePrestationEX044: TypePrestationEX044): ApercuTypePrestation {
let apercuTypePrestation: ApercuTypePrestation;
if (null != typePrestationEX044) {
apercuTypePrestation = new ApercuTypePrestation();
apercuTypePrestation.codeTypePrestation = typePrestationEX044.code;
apercuTypePrestation.libelleTypePrestation = typePrestationEX044.libelle;
}
console.log("A = " typePrestationEX044.code);
console.log("B = " apercuTypePrestation.libelleTypePrestation);
return apercuTypePrestation;
}
В typescript
==
или ===
используется для сравнения, а не для присвоения, чтобы присвоить значение, которое вы должны использовать =
Обновить
Я также заметил, что вы typePrestationEX044
неправильно проверяете значение null.
Измените это:
if (null != typePrestationEX044) {
apercuTypePrestation = new ApercuTypePrestation();
apercuTypePrestation.codeTypePrestation = typePrestationEX044.code;
apercuTypePrestation.libelleTypePrestation = typePrestationEX044.libelle;
}
К этому
if (typePrestationEX044) {
apercuTypePrestation = new ApercuTypePrestation();
apercuTypePrestation.codeTypePrestation = typePrestationEX044.code;
apercuTypePrestation.libelleTypePrestation = typePrestationEX044.libelle;
}
Это if
условие автоматически проверяет undefined
, null
или boolean
Комментарии:
1. Вау, я такой ГЛУПЫЙ lmao. Я так сильно думал, что в TypeScript есть что-то, чего я не понимаю, что я даже не заметил, что использую == вместо = . Хахаха, теперь это работает, спасибо.
2. Нет проблем. Иногда это случается.
3. Изменение
null != var
наvar
может изменить семантику (поскольку пустая строка, например, является ложной). Не уверен, применимо ли это здесь, просто хотел напомнить.4. @Cerberus да, мы должны использовать это по мере необходимости.