Javascript 如何处理查询中字符串类型的typescript错误
我有一个这样的查询:Javascript 如何处理查询中字符串类型的typescript错误,javascript,typescript,Javascript,Typescript,我有一个这样的查询: document.querySelectorAll("h2, h3").forEach(header => { tmpNav.push({name: header.textContent || header.innerHTML, id: header.id, type: header.nodeName}); }) 通过此接口键入的内容: interface IContent { name: string, id: stri
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
中的类型插入一个基于它的类(jss):
我面临的问题是,当我创建这个数组时,type:header.nodeName
抛出一个类型错误,因为它返回的字符串与类型type:H3“|”H2“
用string
添加它将导致我的classes[type]
抛出错误,因为它不能匹配该类型
我不知道该怎么办。我一直都知道数组将使用
header.nodeName
类型中的一个puch,因为它只是的查询选择器
“h2,h3”
一个更合适的解决方案是使用条件值检查来缩小header.nodeName的类型
if (header.nodeName === 'H3' || header.nodeName === 'H2') {
tmpNav.push(...);
}
if (header.nodeName === 'H3' || header.nodeName === 'H2') {
tmpNav.push(...);
}