TypeScript:API总是返回空,对象为{[key:string]:any}



当API的响应数据总是空时,我有问题。下面的示例代码:

interface DataStore {
[key: string]: any,
}
static GetData = async (req: Request, res: Response): Promise<Response> => {
let obj: DataStore = [];
obj['id'] = 'account';
obj['pwd'] = 'password';
console.log(obj); // can see data: [ id: 'account', pwd: 'password' ]
res.status(200).send(obj); // it return empty: []
}

我不知道为什么。有人遇到过这种情况吗?如何处理?请告诉我。非常感谢。

您应该将obj设置为空对象{}:

const t1 = []
t1['foo'] = 'foo'
t1['bar'] = 'bar'
console.log(JSON.stringify(t1)) // []
const t2 = {}
t2['foo'] = 'foo'
t2['bar'] = 'bar'
console.log(JSON.stringify(t2)) // {foo: 'foo', bar: 'bar'}

因此,在您的代码中,执行以下操作:

interface DataStore {
id?: string,
pwd?: string,
}
// No need for `async` here since there is no `async` code here
static GetData = (req: Request, res: Response): void => {
const obj: DataStore = {};
obj['id'] = 'account';
obj['pwd'] = 'password';

res.status(200).json(obj);
}

相关内容

最新更新