@types中声明的命名空间中的typescript预兆接口

@types中声明的命名空间中的typescript预兆接口,typescript,namespaces,Typescript,Namespaces,我正在尝试将响应属性添加到接口设置中,例如,node_modules/@types/datatables.net/index.d.ts: declare namespace DataTables { ... interface Settings { ... 我的项目基于,我希望将该属性用于实现它的datatables.net-responsive-bs4 问:如何编写添加响应属性的声明 PS:我特别感兴趣的是学习如何在我的项目中编写这种声明增强模块和环境声明之间有区别。

我正在尝试将响应属性添加到接口设置中,例如,node_modules/@types/datatables.net/index.d.ts:

declare namespace DataTables {
    ...
    interface Settings {
    ...
我的项目基于,我希望将该属性用于实现它的datatables.net-responsive-bs4

问:如何编写添加响应属性的声明


PS:我特别感兴趣的是学习如何在我的项目中编写这种声明

增强模块和环境声明之间有区别。在您的例子中,
datatables.net
的定义只需取消声明
名称空间
接口
。这意味着您可以在另一个
d.ts
文件中重新声明这些文件,它们将被合并:

// datatables.d.ts
declare namespace DataTables {

    interface Settings {
        responsive : boolean
    }
}

// usage.ts
/// <reference path="./node_modules/@types/datatables.net/index.d.ts" />
/// <reference path="./datatables.d.ts" />

let settings : DataTables.Settings = {
    responsive: true, // ok, from us 
    autoWidth: true // from lib
}
//datatables.d.ts
声明命名空间数据表{
接口设置{
响应:布尔值
}
}
//用法
/// 
/// 
let设置:数据表。设置={
回答:是的,//好的,来自我们
autoWidth:true//from lib
}
对于模块增强,您可以在模块增强部分中查看

PS:tslint.json应至少为规则
“无命名空间”
使用
“允许声明”
,否则IDE可能会通过使
声明
关键字无效来欺骗您(例如,使用
“无命名空间”:[true,“允许声明”]