never類型與窮盡性檢查

never類型與窮盡性檢查

never 表示不存在的狀態

interface Circle {
    kind: "circle"
    radius: number
}

interface Square {
    kind: "square"
    sideLength: number
}

interface Triangle {
    kind: "triangle"
    sideLength: number
}

type Shape = Circle | Square | Triangle // 增加Triangle類型,窮盡性檢查出問題。

function getArea(shape: Shape) { // 求面積
    switch(shape.kind) {
        case 'circle': // 圓形
            return Math.PI * shape.radius ** 2
        case 'square': // 方形
            return shape.sideLength * 4
        default: // 窮盡性檢查
            const _exhaustiveCheck: never = shape
            return _exhaustiveCheck
    }
    
}
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容