我正在尝试添加例如将响应属性转换为例如接口设置,例如node_modules/@types/datatables.net/index.d.ts:
declare namespace DataTables {
...
interface Settings {
...
我的项目基于https://github.com/gdi2290/angular-starter,我希望将该属性与实现它的 datatables.net-responsive-bs4 一起使用。
问:如何编写添加响应属性的声明?
PS:我特别感兴趣的是学习如何将这种声明写入我的项目
答案 0 :(得分:1)
增加模块和环境声明之间存在差异。在您的情况下,datatables.net
的定义只需声明namespace
和interface
。这意味着您可以在另一个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
}
对于模块扩充,您可以在模块扩充部分查看here。
PS: tslint.json 应至少使用"allow-declarations"
作为规则"no-namespace"
,否则IDE可能会通过使declare
关键字无效来欺骗您(例如使用"no-namespace": [true, "allow-declarations"]
)。