Typescript 3.3 больше не получает типы для моих функций из файла d.ts - PullRequest
0 голосов
/ 09 февраля 2019

В моей библиотеке jQuery Terminal у меня есть файл d.ts для типов, и у меня есть test.ts для тестирования типов, это просто использование почти каждого кусочка API, и я выполняю tsc без вывода выходных файлов только дляпротестируйте типы.

Я обновил машинописный текст с 3.0 до 3.3, и теперь мои типы для функций не работают: код выглядит следующим образом, этот пример более сложный с массивом строк, объектов и функций:

$('.term').terminal(["foo.php", obj_interpreter, function(command) {
    this.echo(command);
}]);

У меня есть такие типы:

declare namespace JQueryTerminal {
    type interpterFunction = (this: JQueryTerminal, command: string, term: JQueryTerminal) => any;
    type terminalObjectFunction = (this: JQueryTerminal, ...args: (string | number | RegExp)[]) => (void | PromiseLike<echoValue>);
    type Interpterer = string | interpterFunction | ObjectInterpreter;
    type ObjectInterpreter = {
        [key: string]: ObjectInterpreter | terminalObjectFunction;
    }
    ...
    type echoValue = string | string[] | (() => string | string[]);
    ...
}
interface JQuery<TElement = HTMLElement> {
    terminal(interpreter?: TypeOrArray<JQueryTerminal.Interpterer>, options?: TerminalOptions): JQueryTerminal;
    ...
}

Это нормально работало в машинописном тексте 3.0, и у меня было завершение Emacs для этого.echo, и команда в функции действовалакак строка, даже если в коде пользователя я не указал типы.Нужно ли явно устанавливать типы в коде пользователя, не является ли это серьезным изменением?Почему это происходит?

Для справки вот моя сломанная сборка Трэвиса .

...