#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 к сожалению, я не знаю.. я думаю, вы можете просто использовать полный тип..