描述打字稿.d.ts文件的嵌套对象

时间:2019-12-31 02:06:42

标签: javascript typescript namespaces declare .d.ts

在我的项目中,我正在导入一个对象。该对象是由一个函数创建的,因此IDE不知道其上有什么键(根据提供的配置,它们是动态的)。我的想法是,我可以生成一个描述对象的.d.ts文件,以便希望了解其上哪些键的人可以在IDE中通过代码完成找到它们。

// dynamicObject.js
export default makeAnObject(config);
// useObject.js
import someObject from './dynamicObject.js';

const result = someObject.| (code editor dropdown of keys here)

另一方面,我对将.d.ts文件与这些文件放在同一目录中的感兴趣。我假设tsconfig.json可以解决这个问题,但是我不知道.d.ts文件的语法是什么样。 Typescript对我来说非常陌生,文档也无济于事。

对于我的dynamicObject.d.ts文件,我从类似这样的内容开始

declare namespace someObject {
   interface oneKey {
      nestedKey: string
   }
}

但是代码编辑器仍然不知道对象组成是什么。我不确定这是写.d.ts文件的方式还是tsconfig.json中缺少的方式?

1 个答案:

答案 0 :(得分:0)

需要在tsconfig.json中声明typeRoots。

下面是示例

{
  "compilerOptions" : {
    "typeRoots" : [ "./node_modules/@types", "./src/types"]
}