【发布时间】:2021-03-29 10:13:28
【问题描述】:
我收到以下代码的打字错误:
if (this.$route?.query?.domainName) {
this.setDomain(this.$route.query.domainName);
}
以上代码抛出如下错误:
Typescript - 'string | 类型的参数(string | null)[]' 不是 可分配给“字符串”类型的参数
if (this.$route?.query?.domainName) {
this.setDomain(this.$route.query.domainName);
^
}
我的 setDomain 函数只接受一个字符串类型的参数,如下所示:
setDomain(domain: string) {
this.domainName = domain;
}
我不明白参数怎么可能为空,因为我在 if 语句中的对象属性之后使用嵌套的 ? 检查对象属性是否存在。为什么会抛出这个错误?
【问题讨论】:
-
你的参数仍然是一个可以为空的字符串,但是你的方法只接受一个不可为空的字符串作为参数。在传递参数之前,您需要将参数转换为不可为空的字符串。
标签: javascript typescript