Как по умолчанию экспортировать папку в TypeScript? - PullRequest
0 голосов
/ 02 августа 2020

Имеется тупая проблема, которую я не могу понять

У меня есть папка с именем model, а внутри этой папки есть questions.ts, revokedtokens.ts и users.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, в которой говорится, что импорт каталога XX не поддерживается, разрешение модулей ES, импортированных из YY

Я использую Node 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);

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Мне удалось это исправить, изменив модуль на

"module": "CommonJS",

0 голосов
/ 02 августа 2020

Можете попробовать это?

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

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

export default model;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...