Почему typescript себя так странно ведёт?

Пытаюсь тут подружить 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 функция может возвращать что угодно. Разве нет?
  • Вопрос задан
  • 545 просмотров
Решения вопроса 1
@Coder321
1) Зачем вы делаете module.exports внутри класса?
2) Смотрите тут, первый абзац все обьяснит
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы