#javascript #typescript #visual-studio #typescript-typings #type-systems
#javascript #typescript #visual-studio #typescript-типизации #системы типов
Вопрос:
Как различать разные типы объектов в TypeScript?
interface CC {
a: number;
b: string
}
interface B {
c:number
}
const obj: CC | B = {
a: 1,
c: 1
}
// valid
Я хочу, чтобы объект действителен только тогда, когда
{
a:number,
b:string
}
или
{
c:number
}
не то, какой тип объединения или тип пересечения ведут себя.
Ответ №1:
Один из способов заставить typescript выбрать либо B
или CC
— установить общую переменную с определенным значением.
Пример :
type CC = {
type: 1;
a: number;
b: string
};
type B = {
type: 2;
c: number
};
const obj: CC | B = {
type: 1,
a: 1,
c: 1
};