The two things miss in TypeScript coming from C#:
Pattern matching:
if (thing is Person person)
{
var name = person.Name
}
Safe navigation operator: var countryName = person.Address?.Country ?? "Unknown";
Type guards are a pain to deal with.