簡體   English   中英

如何在本地 javascript 函數中使用 .d.ts

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM