![](/img/trans.png)
[英]How can I use a *.d.ts outside of the node_modules folder for my Angular library?
[英]How can I use .d.ts with in local javascript function
我想知道如何將 .d.ts 文件用於本地 javascript 文件。
我知道我可以聲明模塊為第三方庫提供類型。
// index.d.ts (wrote on place typeRoots)
declare module "random-joke" {
const getRandomJoke: () => Promise<any>;
export { getRandomJoke };
}
像這樣。 所以我可以使用這個帶有類型的“隨機笑話”庫。
但是這個怎么樣? 我嘗試在 index.ts 中導入 { sum } 函數
// module/utils.js
export function sum(a, b) {
return a + b;
}
export function power(a, b) {
return a ** b;
}
export function multiply(a, b) {
return a * b;
}
import { sum } from "./modules/utils";
//'sum' is declared but its value is never read.ts(6133)
//Could not find a declaration file for module './modules/utils'.
我試過這樣聲明模塊。 但它不工作(如果這工作會很有趣)
無論如何,我嘗試了我所知道的一切。 但唯一解決的問題是在 tsconfig.json 中設置 allowJS:true
我知道這不是一個正確的答案。 那么如何使打字稿與javascript函數公平地獲取d.ts文件中的類型呢?
即使是一點提示也會有很大幫助。 謝謝
好的,現在我知道了這些東西是如何工作的。
只需創建帶有 js 文件前綴的 d.ts 文件。
在這種情況下,您應該制作“utils.d.ts”
// module/utils.d.ts
export declare function sum(a: number, b: number): number;
export declare function power(a: number, b: number): number;
export declare function multiply(a: number, b: number): number;
然后 ts 將通過比較文件名來獲取類型。
如您所見,現在您可以在類型中使用您的 js 函數。
只需確保在 tsconfig.json 中添加您的 .d.ts 文件路徑。
{
//...
"typeRoots": [
"./types",
"./modules" // my d.ts files are in "types" and "modules"
] /* Specify multiple folders that act like './node_modules/@types'. */
//...
希望這個答案有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.