!!foo
дважды применяет унарный оператор и используется для приведения к логическому типу, аналогичного использованию унарного плюса +foo
, для приведения в число и конкатенации пустой строки ''+foo
для перевода в строку.
Вместо этих хаков вы также можете использовать функции-конструкторы, соответствующие примитивным типам ( без , используя new
), чтобы явно приводить значения, т. е.
Boolean(foo) === !!foo
Number(foo) === +foo
String(foo) === ''+foo
Возможно, потому, что ng-bootstrap построен для Angular (начиная с V2.X) и основан на машинописи (.ts).
AngularJS (V1.X) основан на ванильном JS (.js). Похоже, что вы ищете, это UI-bootstrap