typescript中的接口是否可以有逻辑

假如 interface 中有逻辑应该怎么去写

interface Car{
    type: 'car' | 'suv';
    Quattro: boolean;
}

假如想让 type 等于 'suv' 的时候 Quattro 属性必须,type'car' 的时候 Quattro 可有可无,类似这种逻辑在 typescript 中如何完成?

阅读 2.1k
1 个回答
type Car = {
    type: 'car'
    Quattro: boolean;
} | {
    type: 'suv';
    Quattro?: boolean;
}

这样。

当你代码里面判断 if (data.type === 'car') ... else ... 时 ts 会自动推导。

推荐问题