a === b checks whether both variables are identical (i.e. both pointers direct to the same memory), while a == b checks whether both variables have the same value.
If comparing with null, it’s not about the actual value but about the state (or maybe better statelessness).
When comparing with null, === (or the negation !==) is the correct way.
It thinks the !== is the name of variable which implies there is a syntax error somewhere further up on the file. It could be the line immediately above or it could be at the top of the file, but somewhere you probably have an opening (e.g. {, (, ', ") without a closing (e.g. }, ), ', "). Or there is something weird a bout the declaration of lastEvccRetstart.
Yes, the error occurred earlier. I had used a DateTime type for lastEvccRestart. That type is no longer exists. I had not seen the info message while loading this rule (“… lastEvccRestart refers to the missing type Object …”).