a := 15 * time.Second // this is ok
Thus, there is no type mismatch.
b := 15
c := b * time.Second
Here, variable b is declared to be equal to the [integer constant] 15. Variable b however, isn't an integer constant, since it is a [declared] variable. The type of b is given to be int, since it can represent the assigned integer constant.
Now, multiplying b with time.Second gives a "mismatched types" error since Go is a typed language and will not implicitly convert the type of variables.
In order to perform the operation, you'll need to convert the type of b:
c := time.Duration(b) * time.Second