What problems does it bring with it? It's just a tool that automatically tells you where you need to deal with possible null values. It's far easier than trying to catch every possible place this can happen with loads and loads of manually written tests.
Not all static languages give you this but the trend is pretty clear with Typescript, Swift, Kotlin etc.