如何在 angular 5+ 中使用大数?

How to use large numbers in angular 5+?

我正在使用 angular 5 和 .Netcore 2.0。我正在使用 API 控制器来处理推文 (LinqToTwitter)。这些推文来自控制器的我的打字稿,除了 19 位长的 statusID 之外都很好。

statusID 应该是: XXXXXXXXXXXXXXXX573

但它正在通过输入脚本作为: XXXXXXXXXXXXXXXX600

API 控制器:

[HttpPost("[action]")]
public async Task<Search> GetAllTweetsByNamePost([FromBody] SearchQuery searchQuery)
{
    searchVal = searchQuery.Name;
    Twitter twit = new Twitter();
    twit.Initialise();
    var t = await twit.Fetch(searchVal, 50, true, SearchType.Search);
    return t[0];
}

当我检查控制器中的 Status ID 时,它显示了正确的 ID,但是它到达 TS statusID 的时间不同,并且数字中有一个模式。

前 16 位正确,后 3 位递增 100,例如

XXXXXXXXXXXXXXXX100 XXXXXXXXXXXXXXXX200 XXXXXXXXXXXXXXXX300

在 Api 控制器中,我使用 LinqToTwitter Status objectStatus object 中的 属性 的类型是 public ulong SinceID { get; set; } 而我设置的 属性 的 TS 模型是 statusID: any;

getSocialDataTwitter(searchQuery) {
    const headers = new HttpHeaders().set('content-type', 'application/json');
    return this.http.post<LeftOperatorPaneltwitter>(this.baseUrl + 'api/OperationData/GetAllTweetsByNamePost', '{"Name":"' + searchQuery + '"}', { headers }).subscribe(result => {
      this.tweets = result;
      result.statuses.forEach(search => {
        console.log(search.statusID + ' This is my Status ID');
      })
    }, error => console.error(error));
  }

Javascript 无法处理这样长度的数字。根据this,最大安全整数值为:9007199254740991。我建议将您的 ID 表示为 string.