gpt4 book ai didi

javascript - 类型 'date' 上不存在属性 '{} | { date: string; }'

转载 作者:行者123 更新时间:2023-12-01 01:29:08 24 4
gpt4 key购买 nike

总的来说,我对 typescript 和类型还是陌生的,但这个错误确实让我感到困惑。我正在使用 npm 模块 query-string 将查询字符串解析为键/值对的对象。但我不确定类型设置返回值的最佳方式是什么。使用 .parse() 方法的 query-string 将返回键/值对的对象或空对象。

示例:

queryString: { date: string } | {} =  queryString.parse(location.search);

当我尝试使用 queryString.date 访问属性时,出现此错误:类型“{} | 上不存在属性“日期”” { 日期:字符串; }'

我确信我在这里遗漏了一些基本的东西,我只是无法弄清楚。

最佳答案

当您尝试访问该属性(property)时;转译器不知道是否要将对象用作空对象或带日期的对象。

有几种方法可以解决这个问题:

1: queryString: { date?: string } = queryString.parse(location.search);从本质上讲,它意味着对象可以具有date 属性,但这不是必需的。如果您希望 queryString.date 为正确的 dateundefined

,请使用此选项

2:用 if 包围你的用法就这么简单。

if(queryString.date !== undefined) {
const date = queryString.date;
//... Do stuff
}

3:(不建议)如果出于任何其他原因您只是不感兴趣它是否存在,您可以通过 as 关键字强制转译器将其视为其中一个或另一个

const myDate: Date = (queryString as {date: Date}).date

关于javascript - 类型 'date' 上不存在属性 '{} | { date: string; }',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53461714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com