The difference is that private
makes the field private, i.e. not accessible from the outside TypeScript code.
Since TypeScript is compiled to JavaScript, and JavaScript doesn't have the notion of private fields, it's still accessible from the outside, including the view, but making it private is still a good idea because it documents the fact that the service is... private to the class, and should thus not be used outside of the class itself, including the view. BTW, I think that the offline compiler that Angular will soon provide to compile the templates to JavaScript code will refuse to compile the views if they use private fields.
In general, in OO, private should be the default for fields: you want to expose as few fields as possible, to be able to refactor the implementation of your class and change its internals without breaking the external code using that class, and relying only on the public API.