gpt4 book ai didi

javascript - 在 Typescript/Javascript ES6 中以编程方式获取同一文件中模块的所有导出

转载 作者:行者123 更新时间:2023-12-05 02:49:57 24 4
gpt4 key购买 nike

我想遍历所有模块导出以提取它们的类型。

我假设在编译期间此信息可用

export const a = 123;
export const b = 321;

// Is there any way to do something like this in typescript/javascript es6?
console.log(module.exports)
// { a: 123, b: 321 }

编辑:我想分享我在第一行提到的问题的解决方案。

感谢您的回答,但我将其完全限制为单个文件似乎是错误的。我创建了一个单独的 types.ts 并使用“utility-types”库进行相关的类型操作

import { ValuesType } from 'utility-types';
import * as myModue from './myModule';

export IMyModuleType = ValuesType<typeof myModue>;

然后用新的 3.8 语法导入类型

import type { IMyModuleType } from './types';
//...

最佳答案

您可以使用 typescript Compiler API。它为您提供所需的所有信息

import * as ts from "typescript";

function compile(fileNames: string[], options: ts.CompilerOptions): void {
let program = ts.createProgram(fileNames, options);
let emitResult = program.emit();

console.log(program)
}

compile(['your-filename.ts'], {
noEmitOnError: true,
noImplicitAny: true,
target: ts.ScriptTarget.ES5,
module: ts.ModuleKind.CommonJS
});

关于javascript - 在 Typescript/Javascript ES6 中以编程方式获取同一文件中模块的所有导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63826859/

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