This is really more of a shell question - in shells like bash, the && operator only runs the next command in a chain if the previous command exited with a code 0. tsc exits with a non-zero code when there are compilation errors, so execution would halt at the && operator. However, you can run a series of commands unconditionally by separating them with semicolons, ignoring and discarding any exit codes earlier in the chain.
tsc file.ts ; node file.js should do it, presuming that tsc actually produces a file.js output.
Given this invalid .ts file:
const foo = "x";
foo = 1;
console.log(foo);
$ tsc test.ts ; node test.js
# ▼ errors from compilation
test.ts:2:1 - error TS2588: Cannot assign to 'foo' because it is a constant.
2 foo = 1;
~~~
Found 1 error.
1 # <-- output from the executed compiled script
tsccompilation times get realy big. Consider running tsc for typechecking only (--noEmit) and some transpiler swc/webpack/parcel in parallel for actual code generation. That may greatly reduce your change/recompilation/result times.