Angular 是否值得为函数参数定义“未定义和null”?
在一些示例代码中,我将undefined和null视为带有管道的函数参数,如下所示Angular 是否值得为函数参数定义“未定义和null”?,angular,typescript,Angular,Typescript,在一些示例代码中,我将undefined和null视为带有管道的函数参数,如下所示 print(param: string | undefined) { console.log(param); } 所以我的问题是,是否值得将undefined和null与stringor任何数据类型一起定义为param类型?因为字符串本身可以为null或未定义 若我从函数参数中删除了undefined,那个么它的行为是相同的 print(param: string) { console.log(para
print(param: string | undefined) {
console.log(param);
}
所以我的问题是,是否值得将undefined和null与stringor任何数据类型一起定义为param类型?因为字符串本身可以为null或未定义
若我从函数参数中删除了undefined,那个么它的行为是相同的
print(param: string) {
console.log(param);
}
您是对的,可以使用默认编译器设置将未定义和null分配给字符串
然而,typescript支持strictNullChecks选项,这意味着null和undefined不再可分配给任何类型。此时,显式添加undefined仍然允许调用方传入可能为null或未定义的值是有意义的
您可以阅读有关主题的更多内容您的观点是正确的,未定义和null可以通过默认编译器设置分配给字符串
然而,typescript支持strictNullChecks选项,这意味着null和undefined不再可分配给任何类型。此时,显式添加undefined仍然允许调用方传入可能为null或未定义的值是有意义的
当您使用-strictNullChecks标志时,typescript的编译器不允许您将null或undefined赋值给变量,如果它没有启用代码,那么您可以阅读更多有关该主题的内容,例如,var s:string=null不会编译,但是var s:string | null=null会编译。此标志用于防止错误。当您使用-strictNullChecks标志时,typescript的编译器不允许您将null或undefined赋值给变量,如果它没有启用代码,例如,var s:string=null不会编译,但是var s:string | null=null会编译。此标志用于防止错误。这取决于您想用它来做什么,大多数人使用它来声明可选参数,如果在某些情况下您得到了代码不需要的参数,您可以使用它,但我建议这样做: 这是可选参数的方式 一个简单的例子是生成密码,例如
这取决于你想用它做什么,大多数人用它来声明可选参数,如果在某些情况下你得到了一个代码不需要的参数,你可以用它,但我建议这样做: 这是可选参数的方式 一个简单的例子是生成密码,例如
print (param? : string) {
console.log(param);
}
checkPassword (password? : string) {
if (!password) {
password = this.somethingToGeneratePassword();
}
}