Пытаюсь тут подружить ts и node.js, но столкнулся с двумя проблемами:
1) Не могу подключить модуль.
В одной и той же папке лежат main.ts и redisApi.ts. В redisApi.ts написал клас:
class RedisApi {
constructor() {
}
someMethod() {
}
}
module.exports = RedisApi;
В main.ts пишу:
import RedisApi = require('./redisApi');
const redisApi = new RedisApi(redisClient, ['one', 'two', 'three', 'four']);
И получаю ошибку: Cannot use 'new' with an expression whose type lacks a call or construct signature.
Если не выносить класс в отдельный модуль, то всё работает. В чём ошибка?
2) Почему TS требует, чтобы async function всегда возвращала Promise? Мне казалось, что ключевое слово async нужно для того, чтобы показать, что внутри функции будет использоваться await перед функцией, возвращающей Promise. А сама async функция может возвращать что угодно. Разве нет?