Доки по разработке
This project is maintained by teniryte
Принципы
as и угловые скобки (<Type>value) выполняют утверждение типов, но не меняют runtime-значение — используйте их осторожно.in позволяют отличать объекты по наличию свойства.any.Пример
const button1 = document.querySelector('.go') as HTMLButtonElement;
button1.disabled = true;
const button2 = <HTMLButtonElement>document.querySelector('.go');
button2.disabled = false;
interface Type1 { name: string; }
interface Type2 { age: number; }
function getUnion(): Type1 | Type2 {
return {} as any;
}
const value = getUnion();
if ('name' in value) {
console.log(value.name);
}
Практика
as.querySelector, прежде чем приводить тип (if (!button) return;).in, typeof, instanceof, чтобы безопасно работать с объединениями типов.