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(...);
}