【发布时间】:2018-05-06 05:49:03
【问题描述】:
我最近更新了 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”。种类 属性“创建”不兼容。 类型“(选项:DataSourceTransportOptions)=> void”与类型“DataSourceTransportCreate”没有共同的属性。脚本 (tsconfig 项目)C:\Users****\typings\kendo\kendo.all.d.ts 1202 活动“
对于许多其他属性,此错误会重复出现。
我的问题是 - 这个定义有效吗?是否有一些更改会导致它突然变得无效(即在 VS 中显示为构建错误)?
【问题讨论】:
-
DataSourceTransportCreate 的类型是什么?是否有可能您更新了 typescript 版本并破坏了一些界面?
-
我已编辑答案以添加 DataSourceTransportCreate 的定义。
-
AFAIK 打字稿版本在我的 csproj 文件中指定:
2.3 并且这没有改变。虽然我的 tsconfig 文件有这个:“{ "version": "1.8.0"," 不确定这是否与这个问题有关。 -
它有用吗? DataSourceTransportCreate 根本不匹配类型,你的新类型是一个函数
-
正如@Axnyff 所说,在 interface DataSourceTransport 中,create? 具有类型 DataSourceTransportCreate 并在 DataSourceTransportWithFunctionOperations 具有类型 (options: DataSourceTransportOptions) => void
标签: typescript