Я изучаю 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.
Но я подумал об этомдо того как функции хватило, что я делаю не так?