Typescript: adăugarea doar a unei proprietăți opționale elimină verificarea tipurilor


Folosesc TypeScript 1.4.1 și am următorul cod:

var hello: {message: string};
hello = {world: 't'};

Așa cum era intenționat, compilatorul TypeScript produce o eroare:

Tipul '{ world: string; }' nu poate fi asignat tipului '{ message: string; }'. Proprietatea 'message' lipsește în tipul '{ world: string; }'. (var) hello: { message: string; }

Dar dacă tipul conține doar o proprietate opțională, așa cum este în:

var hello: {message?: string};
hello = {world: 't'};

Atunci compilatorul este perfect mulțumit, dar aș dori ca eroarea să fie detectată.

Ce fac greșit? Sau este o eroare de TypeScript?

Mulțumesc pentru ajutor!

Răspuns #1

Atunci compilatorul este perfect mulțumit, dar aș vrea ca eroarea să fie detectată. Ce fac greșit? Sau este o eroare de TypeScript?

Nu, acest lucru este intenționat. informațiile suplimentare sunt în regulă atâta timp cât informațiile necesare (în acest caz nimic) sunt prezente.