Typescript 3.3不再从d.ts文件中获取我的函数的类型

时间:2019-02-09 20:21:44

标签: typescript jquery-terminal

在我的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潮中完成了此工作。函数中的回声和命令就像字符串一样,即使在用户代码中我没有指定类型。现在是否需要显式设置用户代码中的类型,这不是重大更改吗?为什么会这样?

在这里供参考的是我的broken travis build

0 个答案:

没有答案