0

我有一个要用来管理复选框的 TypeScript 类。它看起来像这样:

export class TriStateCheckboxManager {

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

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

4

1 回答 1

5

因为 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)中使用!==and===进行比较,而不是!=and ==。请参阅此处了解更多信息。

编辑:正如 MiMo 下面所说,你可以抛出任何你想要的类型,所以一个对象也是一个合适的候选人。

我发现如果您喜欢 JavaScript / TypeScript 错误处理,这篇文章看起来很有希望。这是用于在 JavaScript 中引发错误的MDN页面。

于 2013-03-03T19:10:15.050 回答