Hul*_*the 6 javascript json return function typescript
我最近发现了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;
};
Run Code Online (Sandbox Code Playgroud)
您确实可以指定要返回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;
};
Run Code Online (Sandbox Code Playgroud)
(操场上的代码)
另外,虽然我使用类型别名,但是您可以对interfaces执行相同的操作:
interface MyReturnTypeItem {
vars: string[];
smps: string[];
data: string[];
}
interface MyReturnType {
[name: string]: MyReturnTypeItem;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9942 次 |
| 最近记录: |