Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在TypeScript中执行函数参数验证?_Typescript - Fatal编程技术网

如何在TypeScript中执行函数参数验证?

如何在TypeScript中执行函数参数验证?,typescript,Typescript,我有一个TypeScript类,我想用来管理复选框。看起来是这样的: export class TriStateCheckboxManager { constructor(public checkBox: HTMLInputElement) { if (checkBox.type != "checkbox") { // What now? } } } 如果复选框的类型不等于checkbox,我如何引发错误?因为TypeS

我有一个TypeScript类,我想用来管理复选框。看起来是这样的:

export class TriStateCheckboxManager {

    constructor(public checkBox: HTMLInputElement) {
        if (checkBox.type != "checkbox") {
            // What now?
        }
    }
}

如果复选框的类型不等于
checkbox

,我如何引发错误?因为TypeScript是JavaScript的超级集,它支持所有内置JavaScript函数、类型、对象、关键字等。您要查找的是
throw
关键字,它将引发所需的异常

到目前为止,您的代码是好的,因此下面的代码将完成这项工作

export class TriStateCheckboxManager {

    constructor(public checkBox: HTMLInputElement) {
        if (checkBox.type !== "checkbox") {
            // checkBox doesn't meet the reqruirements,
            // so raise an error. Optionally, you could
            // log a message, warning or whatever you want
            // to the console.
            console.warn("checkBox.type doesn't match.", checkBox, this);
            throw "checkBox.type doesn't match."    // Throw anything you want here
        }
    }
}
顺便说一句:强烈建议使用
==
===
用于JavaScript(因此是TypeScript)中的比较,而不是
=
==
。更多信息,请参阅

编辑: 正如MiMo在下面所说的,您可以抛出任何您想要的类型,因此对象也将是合适的canditate


我发现,如果您对JavaScript/TypeScript错误处理感兴趣,那么这篇文章看起来很有希望。这是在JavaScript中抛出错误的页面。

因为TypeScript是JavaScript的超级集合,它支持所有内置JavaScript函数、类型、对象、关键字等。您要查找的是
throw
关键字,它将引发所需的异常

到目前为止,您的代码是好的,因此下面的代码将完成这项工作

export class TriStateCheckboxManager {

    constructor(public checkBox: HTMLInputElement) {
        if (checkBox.type !== "checkbox") {
            // checkBox doesn't meet the reqruirements,
            // so raise an error. Optionally, you could
            // log a message, warning or whatever you want
            // to the console.
            console.warn("checkBox.type doesn't match.", checkBox, this);
            throw "checkBox.type doesn't match."    // Throw anything you want here
        }
    }
}
顺便说一句:强烈建议使用
==
===
用于JavaScript(因此是TypeScript)中的比较,而不是
=
==
。更多信息,请参阅

编辑: 正如MiMo在下面所说的,您可以抛出任何您想要的类型,因此对象也将是合适的canditate


我发现,如果您对JavaScript/TypeScript错误处理感兴趣,那么这篇文章看起来很有希望。这是在JavaScript中抛出错误的页面。

您想如何处理该复选框?请澄清您的问题please@Anzeo,我能说得更清楚些吗?我希望传递到构造函数中的
HTMLInputElement
对象具有
type
属性
checkbox
,如果没有,我想做一些事情,比如引发异常,但我不知道是否可以引发异常,所以我要问这个问题?@FabianLauer我想将其作为三态复选框进行管理,这就是这个班的名字。@RyanCavanaugh,当我开始学习一些东西时,我采用进化的方法,阅读和提问,而不是随机尝试。试试看,找出如何点火。你想用这个复选框做什么?澄清你的问题please@Anzeo,我能说得更清楚些吗?我希望传递到构造函数中的
HTMLInputElement
对象具有
type
属性
checkbox
,如果没有,我想做一些事情,比如引发异常,但我不知道是否可以引发异常,所以我要问这个问题?@FabianLauer我想将其作为三态复选框进行管理,这就是这个班的名字。@RyanCavanaugh,当我开始学习一些东西时,我采用进化的方法,阅读和提问,而不是随机尝试。试试看,看看怎么点火。我会扔一个东西,而不仅仅是一个string@MiMo:说得好。我要声明你可以扔任何你想要的东西。(甚至是西红柿?:)我会扔一个物体,而不仅仅是一个玩具string@MiMo:说得好。我要声明你可以扔任何你想要的东西。(甚至西红柿?:)