gpt4 book ai didi

javascript - 在 Typescript 中将文本分配给局部变量

转载 作者:行者123 更新时间:2023-11-28 14:51:18 25 4
gpt4 key购买 nike

在 Typescript 中,我尝试使用一些 javascript 代码读取 XML 文件,并使用以下代码将文本内容添加到局部变量:

import { Injectable } from '@angular/core';

@Injectable()
export class JsonreaderService {

private jsonText: string;

constructor() {
this.readTextFile("../../assets/content.json");
}

readTextFile(file)
{
let jsonText: string;
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
this.jsonText = rawFile.responseText;
}
}
}
rawFile.send(null);
}
}

我试图将 json 文件中的文本分配给我的私有(private)局部变量 jsonText: this.jsonText = rawFile.responseText; 它们都是“字符串”类型。

当我尝试此操作时,出现错误:

Property 'jsonText' does not exist on type 'XMLHttpRequest'

有人知道我如何在 typescript 中做到这一点吗?当我删除 this. 时,responseText 可以定义为函数 readTextFile(file)

内的 jsonText 变量

最佳答案

我想你应该在某个地方保存对类的引用,例如:

import { Injectable } from '@angular/core';

@Injectable()
export class JsonreaderService {

private jsonText: string;

constructor() {
this.readTextFile("../../assets/content.json");
}

readTextFile(file)
{
var self = this;
let jsonText: string;
var rawFile = new XMLHttpRequest();
rawFile.open("GET", file, false);
rawFile.onreadystatechange = function ()
{
if(rawFile.readyState === 4)
{
if(rawFile.status === 200 || rawFile.status == 0)
{
self.jsonText = rawFile.responseText;
}
}
}
rawFile.send(null);
}
}

关于javascript - 在 Typescript 中将文本分配给局部变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44413987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com