首页 > 解决方案 > SyntaxError:标识符在数字文字 ts(1351) 之后立即开始

问题描述

问题出在标题中。上下文:我有一个使用 Fetch 访问的 API。

fetch(apiUrl)
    .then( (data) => {
        if(data.ok){
            return data.json()
        }
        throw new Error('Response not ok.'); 
    })
    .then( player => generateHtml(player))
    .catch( error => console.error('Error:', error))

但我想在 HTML 文件中显示 API 的内容。我是这样解决的。

const generateHtml = (data) => {
    console.log(data)
    const html = `
        <h2 class="" >${data.profiles.028304b866cc47d18c08e902edfcb4c6.data.display_name}</h2>
        <div class="name">${data.profiles.028304b866cc47d18c08e902edfcb4c6.cute_name}</div>
        <div class="armor">${data.profiles.028304b866cc47d18c08e902edfcb4c6.items.armor_set}</div>
        <div>Rarity: ${data.profiles.028304b866cc47d18c08e902edfcb4c6.items.armor_set_rarity}</div>
    `
    const playerprofilebox = document.querySelector('#object')
    playerprofilebox.innerHTML = html

但是如您所见,profiles 后面的元素以数字开头,但我无法删除该数字,因为这样 API 将不再访问正确的数据。有什么建议么?

标签: javascriptapi

解决方案


因为它以数字开头,所以您需要使用括号表示法来访问它:

var obj = {
    '0123abc': 10,
    '4567def': 20
};
console.log(obj['0123abc']); // 10
console.log(obj.0123abc); //SyntaxError
``

推荐阅读