[英]Typescript generates declaration d.ts file with `#private;` field
[英]TypeScript type declaration (d.ts) for destructing function payload
使用網絡風暴。 TypeScript v4.6.2
我在常規 JavaScript 文件index.js
中有一個 function 。 在它旁邊我有類型聲明文件index.d.ts
。 此類型聲明文件的唯一目的是獲得自動完成建議。
在 JS 文件中我有一個 function:
module.exports.myFunction = async ({foo}) => {
foo. // <-- expecting to get suggestion "bar"
}
TypeScript 類型聲明文件需要如何查找以為此foo
內部的bar
提供自動完成功能?
嘗試這樣做:
interface payload {
foo: {
bar: string;
};
}
declare function myFunction(object: payload): any;
export default myFunction;
得到這樣的“建議”:
如果我從任何其他位置需要這個myFunction
,那么我確實會按預期獲得建議,但我想在myFunction
本身內部獲得該建議:
文件結構:
TypeScript 不會以神奇的方式工作,在您的情況下,使其工作的最佳方法是導出界面並將其導入 JSDoc 注釋中,以便在 function 鍵入中使用。 所以你的文件應該是這樣的:
// index.d.ts file
export interface Payload { // Interface name should be capitalized
foo: {
bar: string;
};
}
// index.js file
/**
* @typedef {import('.').Payload} Payload
*/
/**
* @param {Payload} param
*/
const myFunction = async ({ foo }) => {
foo. // <-- You will get here the suggestion for "bar"
};
module.exports = { myFunction };
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.