gpt4 book ai didi

typescript - 在 TS 中导出类似 "module.exports"

转载 作者:搜寻专家 更新时间:2023-10-30 21:48:36 24 4
gpt4 key购买 nike

我正在编写一个 Yeoman 生成器,当我在 JS 中这样做时:

"use strict";
var Generator = require("yeoman-generator");
var chalk = rquire("chalk");
module.exports = class extends Generator {
initializing() {
this.log(
chalk.bold(
"Welcome to the " + chalk.green("TypeScript for Serverless") + " generator!"
)
);
};

一切都很好。但我想我可以像这样在 TypeScript 中做到这一点:

import Base = require("yeoman-generator");
import chalk from "chalk";
type IFileConfiguration = IComplexFileConfiguration | string;

export class Generator extends Base {
public options: IDictionary;
public initializing() {
this.log(
chalk.bold(
"Welcome to the " + chalk.green("TypeScript for Serverless") + " generator!"
)
);
}

我的 tsconfig.json 是:

{
"compilerOptions": {
"declaration": true,
"module": "commonjs",
"lib": ["es2015", "es2016", "es2017", "esnext.asynciterable"],
"target": "es2015",
"moduleResolution": "node",
"sourceMap": false,
"noImplicitAny": true,
"outDir": "./generators/app",
"removeComments": true,
"experimentalDecorators": false,
"emitDecoratorMetadata": false
},
"include": ["src/**/*"],
"exclude": ["node_modules", "**/*-spec.ts"]
}

但这创建了一个不同的模块定义,并且完全打破了 Yeoman 接口(interface)的期望。有没有办法让我将转译后的 JS 转换为上面列出的相同导出格式?

最佳答案

好吧,我明白了。通过在没有导出运算符的情况下定义类:

class Generator extends Base {}

然后我可以像这样在 TS 文件的末尾导出:

export = Generator

问题已解决。

关于typescript - 在 TS 中导出类似 "module.exports",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50079071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com