TS-узел не распознает функцию - PullRequest
0 голосов
/ 28 мая 2019

Я изучаю TypeScript и в настоящее время я экспериментирую с koa, думаю, я понял определение функции и согласен с tsc, поскольку он компилируется просто отлично.С другой стороны, если я пытаюсь запустить ts-node, он завершается неудачно со следующей ошибкой:

const sequelize = new Sequelize(connectionURI(env));
                                ^
TypeError: connectionURI is not a function

Я пытался изменить экспорт, а импорт безрезультатно, я даже пытался манипулироватьtsconfig, но это почти как ts-node игнорирует его.Это мои текущие настройки

{
    "compilerOptions": {
      "target": "es2017",
      "module": "commonjs",
      "noImplicitAny": true,
      "declaration": true,
      "outDir": "./lib",
      "strict": true,
      "sourceMap": true,
      "resolveJsonModule": true,
    },
    "include": ["src/**/*.ts"],
    "exclude": ["node_modules", "**/__tests__/*",".vscode"]
  }

Это модуль, который я пытаюсь импортировать

let connectionURI : (env: string) => string;

connectionURI = (env: string):string => {
    switch (env) {
      case 'development': {
        return 'uri';
      }
      default: {
        return ' ';
      }
    }
}

export = connectionURI

Это мой server.ts

import { Sequelize } from 'sequelize';
import * as app from './app';
import * as connectionURI from './conf/conf';

const port = process.env.PORT || 3000;
const env = process.env.NODE_ENV || 'development';
const sequelize = new Sequelize(connectionURI(env));
const server = app.listen(port);

console.info(`Listening to http://localhost:${port} ?`);

Изменениеэкспорт в

export default {connectionURI}

и импорт в

import connectionURI from './conf/conf';

Я могу сделать согласование между tsc и ts-node с одной стороны

Cannot invoke an expression whose type lacks a call signature. Type '{ connectionURI: (env: string) => string; }' has no compatible call signatures.

Но я подумал об этомдо того как функции хватило, что я делаю не так?

...