繁体   English   中英

如何默认导出TypeScript中的文件夹?

[英]How to default export a folder in TypeScript?

有一个我无法弄清楚的愚蠢问题

我有一个名为 model 的文件夹,在该文件夹中有questions.tsrevokedtokens.tsusers.ts 我正在努力做到这样你就可以

import model from '../../model';

然后使用model.questions.whatever()

所以我做了一个index.ts ,这是在里面

import questions from './questions.js';
import revokedtokens from './revokedtokens.js';
import users from './users.js';

export default {
  questions,
  revokedtokens,
  users,
};

但是现在我遇到了一个 TS 问题,说 Directory import XX s not supported resolving ES modules imported from YY

我正在使用节点 14

这是我的tsconfig.json

{
  "compilerOptions": {
    "outDir": "./built",
    "allowSyntheticDefaultImports": true,
    "lib": ["ES2020"],
    "module": "ES2020",
    "moduleResolution": "node",
    "target": "ES2020",
    "resolveJsonModule": true
  },
  "include": ["./**/*", "./**/*.json"],
  "exclude": ["node_modules", "built"]
}

我有"type": "module",在我的package.json

./model/questions.ts的示例

import mongoose from 'mongoose';

import constants from '../libraries/constants.js';
import { regex } from '../utils.js';
import { QuestionsDocument } from '../definitions';

const questions = new mongoose.Schema(
  {
    type: {
      type: String,
      enum: Object.values(constants.model.questions.type),
      lowercase: true,
      required: true,
    },
    question: {
      index: { unique: true },
      type: String,
      minlength: 3,
      required: true,
    },
  },
  { timestamps: true }
);

export default mongoose.model<QuestionsDocument>('questions', questions);

你能试试这个吗?

import questions from './questions';
import revokedtokens from './revokedtokens';
import users from './users';

const model = {
  questions,
  revokedtokens,
  users,
};

export default model;

我能够通过将模块更改为来解决此问题

"module": "CommonJS",

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM