gpt4 book ai didi

typescript1.7 - 声明方法在 typescript 中引发错误?

转载 作者:行者123 更新时间:2023-12-04 12:19:05 31 4
gpt4 key购买 nike

以下内容不会出现错误“编译的函数的声明类型既不是void也不是任何函数必须返回值或包含单个throw语句”的错误。

有没有一种方法可以使编译器识别_notImplemented引发异常?

function _notImplemented() {
throw new Error('not implemented');
}

class Foo {
bar() : boolean { _notImplemented(); }

我唯一看到的解决方法是使用泛型。但这似乎有点hacky。有没有更好的办法?
function _notImplemented<T>() : T {
throw new Error('not implemented');
}

class Foo {
bar() : boolean { return _notImplemented(); }

最佳答案

您可以使用“Either”而不是“throw”。

Either是通常包含错误或结果的结构。因为它是与其他类型一样的类型,所以TypeScript可以轻松利用它。

前任:

function sixthCharacter(a: string): Either<Error, string> {
if (a.length >= 6) {
return Either.right<Error, string>(a[5]);
}
else {
return Either.left<Error, string>(new Error("a is to short"));
}
}

利用 sixthCharacter函数的函数可以选择将其解包,返回一个自身,抛出一个错误或其他选项。

您需要选择一个包含Either的库-查看诸如TsMonad或monet.js之类的monad库。

关于typescript1.7 - 声明方法在 typescript 中引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34439750/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com