Se anda como um pato e grita como um pato, é um pato. Para o TypeScript, se tiver todos os membros estruturalmente, não há problema em outras coisas (independentemente do nome) que aceitem essa estrutura.
Ambiente operacional. Eu gostaria de usar o termo Sistema Operacional, mas isso não é necessariamente o que quero dizer aqui. Pense no navegador, no Node.js, no WScriptHost etc.
Analisando novamente conforme o usuário edita o código.