Typescript Mixins не работает так, как задумано в компиляторе - PullRequest
0 голосов
/ 15 января 2020

Итак, у меня есть класс и интерфейс, объявленные с тем же именем.

declare module "mongoose"
{
  class Schema<T = any>
  {
    constructor(definition?: SchemaDefinition);
  }
  interface Schema<T = any>
  {
    new(definition?: TypedSchemaDefinition<T>): Schema<T>;
  }
}

Предположим, что TypedSchemaDefinition просто преобразует реквизиты параметра типа в их аналог во время выполнения. Я не собираюсь включать весь код, который выполняет эту функцию для простоты, за исключением случаев, когда это требуется.

Пример процедуры: тип компиляции => тип среды выполнения & string => String & number => Number et c ...

Это не должно выдавать ошибку.

interface ShippingCompileType {
 days: number,
 price: number,
}
const ShippingRuntimeType: TypedSchemaDefinition<ShippingCompileType> = {
  days: Number,
  price: Number,
}
const ShippingSchema = new Schema(ShippingRuntimeType);

Error: TypedSchemaDefinition<ShippingCompileType> is not assignable to SchemaDefinition

Я не знаю, является ли это ошибкой или предполагаемой функцией, потому что слияние миксинов и объявлений должно объединить два тип конструктора и разрешить ShippingRuntimeType в качестве допустимого параметра функции. Если это ошибка, то есть ли работа вокруг?

1 Ответ

0 голосов
/ 17 января 2020

Просто удалите файл .vs и добавьте его в тип root, чтобы исправить машинописные модули IntelliSense.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...