【问题标题】:How to use local typings for plain JS files in TypeScript如何在 TypeScript 中对纯 JS 文件使用本地类型
【发布时间】:2016-03-09 11:36:01
【问题描述】:

我有一个导出函数的普通 JS 模块(供应商):

./vendor/my-lib.js:

export function doStuff(mandatoryArgumentX, optionalArgumentY) {
}

我也有它的类型——./vendor/my-lib-typings.d.ts

export function doStuff(mandatoryArgumentX: number, optionalArgumentY?: string)

现在,我有一个想要使用它的 TypeScript 模块:

import {doStuff} from '../vendor/my-lib';
doStuff(44);

在处理此导入时,如何让我的 TypeScript 模块使用打字?全局模块(使用import 'my-lib' 导入)很容易,因为我可以在类型中输入相同的模块名称。但这里不是这样,因为路径是动态的。

我可以在这 3 个文件中的任何一个中放入什么来解决这个难题(除了将 JS 重写为 TS)吗?

【问题讨论】:

    标签: javascript node.js typescript


    【解决方案1】:

    如果您在 .d.ts 文件和 .js 文件之间具有相同的名称,它应该可以工作 - 所以只需重命名 .d.ts 文件,您应该会很好。

    【讨论】:

    • 在这种情况下,只有 d.ts 被处理。 tsc 编译,但构建输出不包含 .js。
    • 您是否使用带有--out 的新TypeScript 1.8 --allowJs 开关?如果没有,TypeScript 将不会发出或复制 JS 文件,因此您必须将 JS 文件作为单独的步骤复制到您的输出位置。
    • 我确实使用了--allowJs,但没有使用--out(现在不推荐使用--outFile,但无论如何我都不使用)。根据文档--outFile 是关于连接和单文件输出的,我想知道它是否会破坏我的任何东西。
    • 好吧,也许这是应该添加到 TS 中的功能。我认为现在你最好的选择是在构建步骤中复制 JS 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-30
    • 1970-01-01
    • 2017-01-30
    • 2022-11-28
    • 2020-12-23
    • 2019-01-25
    • 1970-01-01
    相关资源
    最近更新 更多