Javascript 我能';我不理解这种奇怪的JS流语法
我试图从应用程序中删除一些JS流类型语法,但似乎无法准确地重构这一行。这是类声明的一部分:Javascript 我能';我不理解这种奇怪的JS流语法,javascript,flowtype,Javascript,Flowtype,我试图从应用程序中删除一些JS流类型语法,但似乎无法准确地重构这一行。这是类声明的一部分: declare class Error { static (message?:string): Error; static call(x: any): void; static captureStackTrace(x: any, x: any): void; name: string; message: string; stack: string; } 有问题的行是静态的(消息?
declare class Error {
static (message?:string): Error;
static call(x: any): void;
static captureStackTrace(x: any, x: any): void;
name: string;
message: string;
stack: string;
}
有问题的行是静态的(消息?:字符串):错误代码>
这行代码在做什么,我如何在没有流的情况下重写它?
它看起来像一个方法,但没有名称。。。。任何帮助都将不胜感激 我不是
flow
方面的专家,但我会尽力回答您的问题
这条线在干什么
该方法接受名为message
的可选string
变量,并返回Error
对象
没有流程,我如何重写它
我认为您可以使用
typeof
检查变量的类型。您可以找到更多信息这是一个工厂函数的声明,刚刚与类声明合并。因此,您可以键入检查:
const error=error(message)
为了减少混淆,可以将其重写为构造函数(message?:string):Error
然后您需要使用
new
:const error=new error(message)
以下是两种方法的示例-
因此,如果没有流,您只需要编写一个返回错误对象的函数,并且可能会检查它的第一个参数是否为
字符串
,如果不是未定义的
,,根据我的理解,这个定义是检查原语错误对象的输入类型
这种流语义称为库定义,用于定义第三方库的类型检查。你可以看到下面的定义
所以,您需要做的是创建一个定制的错误函数,比如myError,并将第一个参数类型检查为string。然后返回错误对象 该方法的名称是什么?它没有像“call”或“captureStackTrace”这样的声明名称。