При импорте функции и setName, добавленных в прототип, возникает ошибка «Свойство setName» не существует для типа ». Почему? - PullRequest
0 голосов
/ 28 января 2019

У меня есть старый код, который создает функцию.Примерно так:

function oldFunction() {
  this.name = '';
}

oldFunction.prototype.setName = function(name){this.name = name};

module.exports = oldFunction;

Мой «новый» код использует эту функцию следующим образом:

import { oldFunction } from 'old-function';
export class NewClass extends oldFunction {
  constructor(name) {
    super();
    this.setName(name);
  }
}

Использование NewClass, например так: const n = new NewClass(); генерирует ошибку:

error TS2339: Property 'setName' does not exist on type 'NewClass'.

Тесты пройдены и он компилируется, но эта ошибка сохраняется.Это можно исправить с помощью index signature внутри класса - но это скорее взлом, чем решение.

Почему это происходит?Это ошибка TS?

...