Что эквивалентно нулевому оператору объединения (??) в angular 2?
В C # мы можем выполнить эту операцию:
string str = name ?? FirstName ?? "First Name is null";
Что эквивалентно нулевому оператору объединения (??) в angular 2?
В C # мы можем выполнить эту операцию:
string str = name ?? FirstName ?? "First Name is null";
Объединение выполняется с помощью оператора ||
, т.е.
let str:string = name || FirstName || "name is null and FirstName is null";
Вы также можете прочитать этот вопрос для получения более подробной информации и пояснений.
false || true
возвращает true
.
- person Vedran; 18.04.2019
name
и FirstName
, скорее всего, strings
, подумайте, как JavaScript и TypeScript обрабатывают пустые строки. Если поля name
и FirstName
являются пустыми строками, результатом будет name is null and First Name is null
, несмотря на то, что ни одно из них не является нулевым.
- person Michael Ziluck; 27.03.2020
В Typescript введено объединение null с версией 3.7
, поэтому, если вы работаете на 3.7
или выше, вы можете просто написать:
const str = name ?? firstName ?? "Name and First Name are both null";
const x = foo?.bar.baz() ?? bizz();
См. https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#nullish-coalescing.
Начиная с Angular 12, вы также можете использовать ??
в шаблоне.
Может быть, вы хотите добиться этого:
let str =
typeof (name) !== 'undefined' && name !== null ?
name : typeof (FirstName ) === 'undefined' || FirstName === null ?
"First Name is null" : FirstName
name
и FirstName
являются пустыми строками, это приведет к First Name is null
, несмотря на то, что ни одно из них не является нулевым.
- person Michael Ziluck; 27.03.2020
Оператор был добавлен в TypeScript 3.7 https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-7.html#nullish-coalescing