Not so. Shellcheck will tell you about syntactically invalid bashisms, but will not warn you about the zillions of things that are under or unspecified in posix. Pertinent minimal example:
$ echo $'#!/bin/sh\ntrap "echo exiting" EXIT\nsleep 1h' > exit.sh
$ shellcheck --shell sh exit.sh && echo "ALL GOOD!"
$ /bin/dash exit.sh
^C
$ /usr/bin/zsh exit.sh
^C
$ /bin/bash exit.sh
^Cexiting
Good luck finding a person who can use trap in a way that actually works as intended across different posix conform shells without consulting stack overflow first.