TypeScript:定义可以为bool或null的类型

TypeScript:定义可以为bool或null的类型

问题描述:

我有一个函数可以返回true,false或null。TypeScript:定义可以为bool或null的类型

如何定义此类型?现在,作为临时解决方案,我将其定义为boolean | string,但这是误导性的,有人可能会说它确实可能会返回字符串...任何想法?

+0

我想你尝试了明显的'布尔| null'。它是如何工作的? – Louis

+0

当然,我做到了。我的WebStorm不会让我以这种方式使用它。也许是因为TS版本?我使用1.8捆绑到WS。 – shal

这取决于您使用的打字稿版本。

  • 前2.0 null可以返回上(“在域”)任何类型的,所以boolean是你喜欢的类型

  • 开头2.0,如果启用--strictNullChecks,那么你必须指定一个类型可以返回null。所以,你的类型将是boolean | null

更多细节hereNon-nullable Types

默认情况下,null和undefined是所有其他类型的子类型,所以您只需指定返回值为布尔值并且您很好。

function foo(): boolean { 

    return null; // OK 
} 
+0

如果使用推荐的编译器设置'--strictNullChecks',这在新版本的TS中不正确。 – Alex

+0

你是对的,所以我把我的答案改为“默认” – rafraph