首页 > 解决方案 > 将自定义本地类型添加到由 TypeScript 编译器生成的输出声明

问题描述

考虑您的库项目中有以下代码:

// src/index.ts

import { sum } from '@acme/sum';

export function printSum(a: number, b: number, sumFunc: typeof sum) {
  console.log(`The sum is: ${sumFunc(a, b)}`);
}

您正在sum从无类型的第三方包中导入函数并将其用作函数参数的类型sumFunc

然后为这个模块添加本地自定义类型声明:

// types/acme-sum/index.d.ts

declare module '@acme/sum' {
  export function sum(a: number, b: number): number;
}

但是,编译后的结果将如下所示:

// dist/types/index.d.ts

import { sum } from '@acme/sum';
export declare function printSum(a: number, b: number, sumFunc: typeof sum): void;

如您所见,所有自定义类型都消失了。如果您的图书馆的用户将其导入,她将无法弄清楚是什么sumFunc类型。

有没有办法确保将本地类型实际添加到的输出中tsc

标签: typescripttypescript-typings

解决方案


推荐阅读