【发布时间】:2018-01-07 16:34:58
【问题描述】:
我刚开始学习 TypeScript,在某些情况下,我得到的可能是 Type 或 null。有没有优雅的方法来处理这些情况?
function useHTMLElement(item: HTMLElement) {
console.log("it worked!")
}
let myCanvas = document.getElementById('point_file');
if (myCanvas == null) {
// abort or do something to make it non-null
}
// now I know myCanvas is not null. But the type is still `HTMLElement | null`
// I want to pass it to functions that only accept HTMLElement.
// is there a good way to tell TypeScript that it's not null anymore?
useHTMLElement(myCanvas);
我编写了以下似乎可行的函数,但这似乎是一种常见的情况,我想知道语言本身是否为此提供了一些东西。
function ensureNonNull <T> (item: T | null) : T {
if (item == null) {
throw new Error("It's dead Jim!")
}
// cast it
return <T> item;
}
useHTMLElement(ensureNonNull(myCanvas));
【问题讨论】:
标签: javascript typescript types error-handling null