gpt4 book ai didi

javascript - 使用 TypeScript 函数返回 JSON 对象

转载 作者:数据小太阳 更新时间:2023-10-29 05:21:31 27 4
gpt4 key购买 nike

我最近发现了 TypeScript,并尝试将我现有的 JavaScript 代码转换为 TypeScript。

我有一个函数可以从字符串 (data) 中检索信息,将其放入 JSON 对象 (json) 中并返回它。但是,当使用 TypeScript 且未指定返回类型时,我在 Eclipse 中收到以下错误:

No best common type exists among return expressions

当我添加 any 返回类型时它就消失了,但我认为这不是一个好的解决方案(太通用)。而且我找不到“json”或“object”类型。

我的问题是:我应该使用什么返回类型?

函数如下:

function formaterDonnees(data: string) { // or (data: string): any
// final json object
var json = {
y: {
"vars": [],
"smps": [],
"data": []
}
};

// ...
// processing data...
// ...

// put new variables in JSON (not real values below)
json.y.data = ["data"];
json.y.smps = ["smps"];
json.y.vars = ["vars"];

return json;

};

最佳答案

您确实可以指定返回 object ( new to typescript 2.2 ),但您可以为返回值创建一个类型:

type MyReturnTypeItem = {
vars: string[];
smps: string[];
data: string[];
}

type MyReturnType = {
[name: string]: MyReturnTypeItem;
}

function formaterDonnees(data: string): MyReturnType {
var json = {
y: {
"vars": [],
"smps": [],
"data": []
}
};

// put new variables in JSON (not real values below)
json.y.data = ["data"];
json.y.smps = ["smps"];
json.y.vars = ["vars"];

return json;

};

( code in playground )

此外,当我使用 type alias 时你可以用 interfaces 做同样的事情:

interface MyReturnTypeItem {
vars: string[];
smps: string[];
data: string[];
}

interface MyReturnType {
[name: string]: MyReturnTypeItem;
}

关于javascript - 使用 TypeScript 函数返回 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43523645/

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