Как импортировать типы из драйвера cassandra в typescript?

#typescript

#typescript

Вопрос:

В документах драйвера Cassandra показан код, подобный этому:

 const Uuid = require('cassandra-driver').types.Uuid;
const id = Uuid.random();
  

Но когда я делаю это в Visual Studio Code, он не отображается Uuid как тип класса.

введите описание изображения здесь

Я пытался использовать импорт в стиле ES6:

 import cassandra from 'cassandra-driver'
  

Как импортировать этот Uuid тип, чтобы typescript правильно его видел?

Псевдоним типа, похоже, работает. Это идиоматично? Это кажется немного подробным, если я хочу сделать это для нескольких типов.

 type Uuid = cassandra.types.Uuid
  

Обновление: На самом деле, это работает не очень хорошо. Я не могу позвонить Uuid.fromString(...) .

Ответ №1:

Вы просто берете значение из модуля. Вам также нужен тип. Также, если вы используете require , вам нужно использовать import в противном случае, вы получаете require функцию из узла, которая возвращает any и удаляет все полезные типы.

 import cassandraDriver = require('cassandra-driver');
type Uuid = cassandraDriver.types.Uuid;
const Uuid = cassandraDriver.types.Uuid;
const id = Uuid.random();

interface Test {
    id: Uuid
}
  

Комментарии:

1. Хорошо, отлично. Рядом с TimeUuid типом есть Uuid тип. Есть ли ярлык для импорта нескольких типов, например, если бы я хотел оба Uuid и TimeUuid , например?

2. @RobN к сожалению, я не знаю.. я думаю, вы можете просто использовать полный тип..