In plugin.xml, the following works fine, and doesn't prevent the default TypeScript completions:
<completion.contributor language="TypeScript JSX" ...
Note the use of the JSX dialect. However, doing this:
<externalAnnotator language="TypeScript JSX" ...
Means that the default TypeScript external annotator no longer highlights errors. I only discovered this after an error was shown in the TypeScript compiler tool window, but not in the editor.
This seems counter intuitive, and seems likely to cause bugs, but it looks like a "fix" is to set language="TypeScript". Is this behavior intended by the extension API?
Note that I've seen the same behavior for internal annotators as well.