@ViewChildren(Pane) panes !: QueryList<Pane>
About ! this is an operator in typescript called Non-Null Assertion Operator this operator takes a typed variable and removes the undefined and null types from it. In other words, it doesn't let your variable get null or undefined type. if you don't use it, you will get a compile error when strictNullChecks flag is on. it means when the flag is off the compiler does not check for undefined and null types assignments.
in order to enable this flag, you must set it true in tsconfig.json
{
"compilerOptions": {
...
"strictNullChecks": true,
...
}
}
In this case After Enable the flag if you don't use '!' when there is no pane directive in the component, you will get an error.
In order to make it more clear I have already prepared an example here
And if you need more information check this link