在 Typescript 中字符串可以为空或者未定义吗?
2020-06-18
508
给定以下函数原型:
function get(): string { /*.../* }
此函数可以返回
null
或
undefined
吗?或者只能返回其中之一?我尝试了解应应用哪些检查来检查函数返回类型的有效性
2个回答
这取决于您的
compilerOptions
。准确地说,是
strictNullChecks
标志。
strictNullChecks: false
function get(): string {
return null; // ok
}
function get(): string {
return undefined; // ok
}
在这种情况下,您需要对
null
和
undefined
进行额外检查。
strictNullChecks: true
返回值
必须
为
string
类型。不允许使用
null
和
undefined
。无需进行额外检查。
function get(): string {
return null; // Compile-time error
}
function get(): string {
return undefined; // Compile-time error
}
检查您的
tsconfig.json
并按您喜欢的方式设置
compilerOptions.strictNullChecks
。
Karol Majewski
2020-06-18
不可以,此函数只能返回字符串。
如果需要,您必须设置其他类型:
function get(): string | undefined | null {/*....*/ }
或者,如果您只想返回字符串,则必须检查额外的条件。
BeHappy
2020-06-18