我最近发现了TypeScript,并试图将现有的JavaScript代码转换为TypeScript。
我有一个函数,它从字符串(data)中检索信息,将其放入JSON对象(json)并返回它。但是,当使用TypeScript而不指定返回类型时,在Eclipse中会出现以下错误:
返回表达式之间不存在最佳的公共类型。
当我添加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;
};发布于 2017-04-20 15:30:34
您确实可以指定返回object (打字本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;
};(操场密码
interface MyReturnTypeItem {
vars: string[];
smps: string[];
data: string[];
}
interface MyReturnType {
[name: string]: MyReturnTypeItem;
}https://stackoverflow.com/questions/43523645
复制相似问题