【发布时间】:2020-04-19 16:02:56
【问题描述】:
在我的项目中,我正在导入一个对象。该对象是由一个函数创建的,因此 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 中缺少的东西?
编辑:将我的tsconfig.json 作为第一个答案包含在内是行不通的。希望拥有最基本的配置,但我可以想象它可能会丢失更多:
{
"compileOnSave": true,
"compilerOptions" : {
"baseUrl": "./",
"paths": {
"*" : ["myCustomTypings/**.d.ts"]
}
}
}
EDIT2 我暂时将.d.ts 文件移动到与dynamicObject.js(命名为dynamicObject.d.ts)相同的目录中,现在IDE 可以判断它是typeof someObject,但不能告诉对象的结构。我如何描述dynamicObject.d.ts 中的对象?
【问题讨论】:
标签: javascript typescript namespaces declare .d.ts