首页 > 解决方案 > 是否可以在 TypeScript 中为 tsc 编译引发自定义错误?

问题描述

如果满足某个条件,我想为 tsc 编译时间而不是运行时抛出一个自定义错误。

我想这样做的原因是为了防止传递某些组合的参数。

例如

f("A", "C"); // ok
f("A", "D"); // ok
f("B", "C"); // ok
f("B", "D"); // no, wanna prevent this combination of arguments

在函数中,我想要这样的东西:

function f(arg1: "A" | "B", arg2: "C" | "D") {
  if (arg1 === "B" && arg2 === "D") {
    // wanna throw a TS custom error here
  }

  // do some tasks...
}

此处已提出类似问题,但答案并未提供使用本机 TS 功能实现此目的的方法。

没有 TS 功能可以做我想做的事吗?


编辑前的旧 Eg

function root(radical: number, radicand: number) {
  // even root of a negative number does not exist
  if (radical % 2 === 0 && radicand < 0) {
    // wanna throw a TS custom error here
  }

  // do some calculation here
  ...

  return answer;
}

标签: typescript

解决方案


推荐阅读