首页 > 解决方案 > 为 JS 对象生成类型会为函数生成重复的条目

问题描述

我有一个 js 文件,它在生成类型时会导致对象中每个函数的重复条目。

test.js

const test = {
  /**
   *
   * @param {string} testID
   * @returns {void}
   */
  initialize(testID) {
    // I do nothing
  },
};

export default test;

test.d.js

export default test;
declare namespace test {
    /**
     *
     * @param {string} testID
     * @returns {void}
     */
    function initialize(testID: string): void;
    /**
     *
     * @param {string} testID
     * @returns {void}
     */
    function initialize(testID: string): void;
}

是什么赋予了?

标签: typescript

解决方案


问题在于声明initialize(testID)initialize = function(testID)

这将完美地生成:

const test = {
  /**
   *
   * @param {string} testID
   * @returns {void}
   */
  initialize: function(testID) {
    // I do nothing
  },
};

export default test;

产量:

export default test;
declare namespace test {
    function initialize(testID: any): void;
}


推荐阅读