[英]How to handle both a single item and an array of string type in javascript / typescript
[英]how to handle typescript error for type of string on query
我有一个这样的查询:
document.querySelectorAll("h2, h3").forEach(header => {
tmpNav.push({name: header.textContent || header.innerHTML, id: header.id, type: header.nodeName});
})
通过这个接口输入的内容:
interface IContent {
name: string,
id: string,
type: "H3" | "H2"
}
我有一个遍历tmpNav
数组并显示数据的循环,其中有时我使用tmpNav
中的类型插入基于它的 class(jss):
className={classes[type]}
我面临的问题是当我创建这个数组时, type: header.nodeName
会引发类型错误,因为它返回一个与类型type: "H3" | "H2"
type: "H3" | "H2"
用string
添加它会导致我的classes[type]
抛出错误,因为它无法匹配该类型。
我不确定如何 go 关于这个。 我一直都知道该数组将使用header.nodeName
提供一种类型,因为它只是"h2, h3"
的querySelector
。
更合适的解决方案是使用条件值检查来缩小header.nodeName
的类型
if (header.nodeName === 'H3' || header.nodeName === 'H2') {
tmpNav.push(...);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.