我刚刚错过了"投掷"这个关键字.

我收到以下代码的"并非所有代码路径都返回值(Ts 7030)"错误

function fn(val: number) : string {
    switch (val) {
        case 1: return "one";
        case 2: return "two";
        default: new RangeError("Unknown value found.");
    }
}

如果我这样重写它,我不会收到错误:

function fn2(val: number) : string {
    let c: string;
    switch (val) {
        case 1: c = "one"; break;
        case 2: c = "two"; break;
        default: new RangeError("Unknown value found.");
    }
    return c;
}

我在球场上看不到这个错误.

可能是什么环境导致了这种情况?

推荐答案

您的默认大小写中缺少throw,这应该是正确的函数:

function fn(val: number) : string {
    switch (val) {
        case 1: return "one";
        case 2: return "two";
        default: throw new RangeError("Unknown value found.");
    }
}

Typescript相关问答推荐

如何为ViewContainerRef加载的Angular组件实现CanDeactivate保护?

类型安全JSON解析

泛型函数类型验证

如何使用Zod使一个基于其他字段值的字段为必填字段?

React重定向参数

PrimeNG日历需要找到覆盖默认Enter键行为的方法

有条件地删除区分的联合类型中的属性的可选属性

类型TTextKey不能用于索引类型 ;TOption

是否可以判断某个类型是否已合并为内部类型?

TypeScrip:使用Union ToInterval辅助对象,但保留子表达式

Typescript -返回接口中函数的类型

打字错误TS2305:模块常量没有导出的成员

如何在Reaction 18、Reaction-Rout6中的导航栏中获取路由参数

如何在Nextjs路由处理程序中指定响应正文的类型

为什么类型脚本使用接口来声明函数?他的目的是什么.

如何实现允许扩展泛型函数参数的类型

Svelte+EsBuild+Deno-未捕获类型错误:无法读取未定义的属性(读取';$$';)

Typescript:是否将联合类型传递给重载函数?

为什么 Typescript 无法正确推断数组元素的类型?

使用嵌套属性和动态执行时,Typescript 给出交集而不是并集