Earlier quoted context omitted.
So you are saying the implementation of the Typescript language are a subset of all JavaScript implementations? I guess that is true in a certain sense. But this does not contradict the fact that TypeScript as a language is a superset of JavaScript - rather it follows logically. (Although in reality the Typescript implementation is a preprocessor, intended to use together with a regular JavaScript engine.)
Kind of. The language gets confusing because we use subset and superset next to each other, but we put different meaning on them. {foo: number, bar: string} as type is a subset of both {foo: number} and {bar: string}. It requires it's members to have both properties. You can construct this type using intersection: type Foo = {foo: number} type Bar = {bar: string} type FooBar = foo & bar {foo: 1, bar: 'hello'} as obje…
I think you are confusing terminology, because those two statements are contradictory.