TypeScript 中是否有“除 (...) 之外的所有”联合鉴别器?

Mic*_*dak 1 typescript

从一个例子开始可能是最简单的:

enum Season {
    Spring,
    Summer,
    Autumn,
    Winter
}
    
interface WinterForecast {
    season: Season.Winter;
    snowfall: number;
}
    
interface RestOfYearForecast {
    season: Season.Spring | Season.Summer | Season.Autumn; // can I shorten this?
    rainfall: number;
}
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式将seasonin指定RestOfYearForecast为“除冬季外的所有季节”,而不是列出所有可能的值?

ale*_*ero 5

interface RestOfYearForecast {
  season: Exclude<Season, Season.Winter>
  rainfall: number;
}
Run Code Online (Sandbox Code Playgroud)