Javascript 通过语法检查与联合类型
最初,null和undefined是JavaScript有效的第一类类型公民。以前的TypeScript没有遵守这一点,这意味着您不能定义一个变量并告诉TypeScript这个变量的值可以为null或未定义 语法Javascript 通过语法检查与联合类型,javascript,angularjs,typescript,types,union-types,Javascript,Angularjs,Typescript,Types,Union Types,最初,null和undefined是JavaScript有效的第一类类型公民。以前的TypeScript没有遵守这一点,这意味着您不能定义一个变量并告诉TypeScript这个变量的值可以为null或未定义 语法 let y: number | null; let z: number | undefined; 联合类型与交叉点类型密切相关,但它们的使用方式非常不同。有时,您会遇到一个库,该库要求参数为数字或字符串 语法: function padLeft(value: string | num
let y: number | null;
let z: number | undefined;
联合类型与交叉点类型密切相关,但它们的使用方式非常不同。有时,您会遇到一个库,该库要求参数为数字或字符串
语法:
function padLeft(value: string | number | boolean) {
// codings
}
我的问题是:
- 是否可以在
概念中使用联合类型
概念? 像
function padLeft(value: string | undefined | number | undefined) { // coding's }
- 是否可以在函数参数中使用
? 像stricnullcheck
有可能,除了
字符串|未定义|数字|未定义
有一个未定义
太多。有可能,除了字符串|未定义|数字|未定义
有一个未定义
太多。哪一个是可能的?第一个问题或第二个问题。你能和代码分享更多细节吗?因为它应该是帮助别人的。除了我提到的例外,这两种方法都是可能的。在第一种情况下,它应该是string | number | undefined
,这意味着调用padLeft时value
可以是string、number或undefined类型。在第二种情况下,它只能是字符串或未定义。如果您试图使用任何其他类型(如第二种情况中的数字)调用padLeft,TypeScript编译器将发出投诉。您可以将其添加到答案中。我将等待更多细节的其他答案,其中一个是可能的?第一个问题或第二个问题。你能和代码分享更多细节吗?因为它应该是帮助别人的。除了我提到的例外,这两种方法都是可能的。在第一种情况下,它应该是string | number | undefined
,这意味着调用padLeft时value
可以是string、number或undefined类型。在第二种情况下,它只能是字符串或未定义。如果您试图使用任何其他类型(如第二种情况中的数字)调用padLeft,TypeScript编译器将发出投诉。您可以将其添加到答案中。我将等待更多细节的其他答案
function padLeft(value: string | undefined) { // coding's }