首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从js文件生成.d.ts的过程

从js文件生成.d.ts的过程
EN

Stack Overflow用户
提问于 2014-04-30 11:31:17
回答 2查看 7.7K关注 0票数 6

我正在尝试将JavaScript文件转换为TypeScript definition (.d.ts)。

我找不到自动执行此操作的工具,也找不到定义良好的将.js转换为.ts或.d.ts文件的过程。

谁能分享一下为.js文件获取.d.ts文件的正确步骤?

谢谢,

萨拉瓦南

EN

回答 2

Stack Overflow用户

发布于 2014-04-30 11:53:25

不幸的是,这仍然是一个手动过程。但是,您可以将.js文件转换为TypeScript .ts文件,然后typescript编译器可以使用.d.ts编译器标志为您生成-d。例如,以下代码将为您提供一个foo.d.ts和一个foo.js

代码语言:javascript
复制
tsc -d foo.ts --out foo.js

您可以研究各种工具,但目前没有一个是100%的:https://github.com/borisyankov/DefinitelyTyped/issues/2103#issuecomment-41899391

票数 11
EN

Stack Overflow用户

发布于 2015-03-17 16:46:14

尝试下面的代码。事实上,下面的代码并没有生成.d.ts文件,但是它生成的树可以为你写.d.ts文件提供一个参考,它给大多数对象的类型属性和函数参数的个数

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23379198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档