我正在尝试将我的JavaScript文件转换为TypeScript定义(.d.ts)。
我无法找到自动执行此操作的工具或将.js转换为.ts或.d.ts文件的定义良好的过程。
有人可以分享获取.js文件的.d.ts文件的正确程序吗?
谢谢,
Saravanan
答案 0 :(得分:11)
不幸的是,它仍然是一个手动过程。但是,您可以将.js
文件转换为TypeScript .ts
文件,然后typescript编译器可以使用.d.ts
编译器标志为您生成-d
。例如以下内容将为您提供foo.d.ts
和foo.js
tsc -d foo.ts --out foo.js
您可以调查各种工具的讨论,但目前这些工具都不是100%:https://github.com/borisyankov/DefinitelyTyped/issues/2103#issuecomment-41899391
答案 1 :(得分:0)
尝试下面的代码。实际上,下面的代码不会生成.d.ts文件,但它生成的树可以编写.d.ts文件供您提供引用,它给出了大多数对象的属性类型和函数参数的数量的
var Helper = (function () {
function Helper() {
}
Helper.MAX_DUMP_DEPTH = 10;
Helper.dumpObj = function (obj, name, indent, depth) {
if (depth > Helper.MAX_DUMP_DEPTH) {
return indent + name + typeof(obj) +": <Maximum Depth Reached>\n";
}
var pre = '';
pre = (name + '').substr(0, 1);
if (pre == '_' || pre == '-') {
return '';
}
if (typeof obj == "object") {
var child = null;
var output = indent + name + typeof(obj)+"\n";
indent += "\t";
for (var item in obj) {
pre = (item + '').substr(0, 1);
if (pre == '_' || pre == '-') {
continue;
}
var temp = obj[item] + '';
try {
child = obj[item];
}
catch (e) {
child = "<Unable to Evaluate>";
}
if (typeof child == "object") {
output += Helper.dumpObj(child, item, indent, depth + 1);
}
else {
output += indent + item + ": " + temp.substr(0, 1 + temp.indexOf(')'))+ typeof(child) + "\n";
}
}
return output;
}
else {
return obj;
}
};
return Helper;
})();
Helper.dumpObj(yourobj,"yourobj"," ",0)