Гунаҳо ҳамчун навъ дар TypeScript

Ҳар гунаҳо навъи додаҳои худро месозад. Барои намуна, барои тағирёбандае, ки мавсими ҳозираро нигоҳ медорад, навъи Season-ро таъин мекунем:

typescriptlet current: Season;

Ба тағирёбандаи мо рақами мавсимро менависем:

typescriptlet current: Season = Season.Winter;
console.log(current); // 0

Метонем рақами мавсимро дастӣ муайян кунем:

typescriptlet current: Season = 3;

Агар бӯем додаҳои навъи дигарро, масалан, сатрро нависем, хатогӣ рӯй медиҳад:

typescriptlet current: Season = 'str'; // хатогӣ рух медиҳад

Мутаассифона, диапазони арзишҳо пайгирӣ намешавад ва метавон рақамеро навишт, ки дар гунаҳои мо вуҷуд надорад:

typescriptlet current: Season = 7; // хатогӣ намешавад

Ҳангоми санҷиш тавассути амалгари typeof тағирёбандаи мо навъи ададиро бармегардонад:

typescriptlet current: Season = 3;
console.log(typeof current); // "number"

Дар хулоса гуфтан мумкин аст, ки ин гуна навъ ба таври зарурӣ сахт санҷида намешавад ва аз ин рӯ арзиши он шубҳаовар аст.