打字稿构建错误 - 这有什么问题?

时间:2017-11-22 13:08:34

标签: typescript

我最近更新了VS2017,我看到很多打字稿构建错误。

错误都是一样的,都与d.ts文件的有效性有关。

这是d.ts文件中导致打字稿编译错误的一些代码(TS2411):

interface JQueryAjaxSettings {
}

interface DataSourceTransportCreate extends JQueryAjaxSettings {
    cache?: boolean;
    contentType?: string;
    data?: any;
    dataType?: string;
    type?: string;
    url?: any;
}

interface DataSourceTransport {
    create?: DataSourceTransportCreate;
    destroy?: DataSourceTransportDestroy;
    push?: Function;
    read?: DataSourceTransportRead;
    signalr?: DataSourceTransportSignalr;
    update?: DataSourceTransportUpdate;

    parameterMap?(data: DataSourceTransportParameterMapData, type: string): any;
}

interface DataSourceTransportOptions {
    success: (data?: any) => void;
    error: (error?: any) => void;
    data: any;
}

interface DataSourceTransportWithFunctionOperations extends DataSourceTransport {
    create?: (options: DataSourceTransportOptions) => void;
    destroy?: (options: DataSourceTransportOptions) => void;
    read?: (options: DataSourceTransportReadOptions) => void;
    update?: (options: DataSourceTransportOptions) => void;
}

错误是:

  

TS2430(TS)接口'DataSourceTransportWithFunctionOperations'   错误地扩展了接口'DataSourceTransport'。种类   属性'create'不兼容。       输入'(options:DataSourceTransportOptions)=> void'没有与'DataSourceTransportCreate'类型相同的属性。脚本   (tsconfig   项目)C:\ Users **** \ typings \ kendo \ kendo.all.d.ts 1202 Active“

对于许多其他属性重复此错误。

我的问题是 - 这个定义有效吗?是否有一些变化会导致它突然失效(即在VS中显示为构建错误)?

1 个答案:

答案 0 :(得分:1)

不,该定义无效。 DataSourceTransportWithFunctionOperations覆盖create(options: DataSourceTransportOptions): void与基础create: DataSourceTransportCreate不兼容,而 { using (WebClient client = new WebClient()) { // string Test = "By logging on you can Ask the our experts your questions by email...."; string Test; string url = "https://sampleweb.com"; string content = client.DownloadString(url); if (content.Contains("XYZ")) { Console.WriteLine("Expected Text found here: "); } else { Console.WriteLine("Expected Text NOT found here: "); } Console.WriteLine(content);` 根本不是一个功能,而是一个选项包。

自从2.4以来,Typescript只用选项包检测到这些错误,而这个特定的错误只能从2.5开始,因为它涉及一种方法类型。更改可能是您最新的VS更新将您从Typescript 2.3或2.4或更高版本切换。

根本问题是剑道类型已经过时了。正如你所发现的那样,官方的打字在8月得到了解决。如果你更新你的打字,大多数应该修复编译而没有错误的新版本的Typescript。