Each type checker can implement however strict rules it wants.
And pyright gives the correct answer here:
Expression of type "None" cannot be assigned to declared type "int"
Type "None" cannot be assigned to type "int"