Typescript:如何在全局声明的命名空间中扩展现有接口

时间:2016-12-12 13:13:21

标签: typescript kendo-ui

我试图扩展来自定义文件的现有KendoUI接口。 通过接口合并,这通常是直截了当的,但我要扩展的接口是在特定的全局命名空间中" kendo.ui"

我试图添加" hideInEditor"像这样支持kendo.ui.GridColumn接口的接口。

namespace kendo.ui {
    export interface GridColumn {
        hideInEditor?: boolean;
    }   
}

然而,编译器似乎忘记了原始定义的所有内容,因为缺少所有类型,我无法再访问kendo名称空间。显然这是错误的。但扩展这种界面的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

将类型定义文件放在同一个文件夹中不会做任何事情,除非你以某种方式告诉编译器寻找它们。

在你的情况下,我认为你需要这个:

/// <reference path="./kendo.ui.d.ts" />

namespace kendo.ui {
    export interface GridColumn {
        hideInEditor?: boolean;
    }
}

let obj: kendo.ui.GridColumn;
console.log(kendo.culture()); // ok
console.log(obj.format); // ok
console.log(obj.hideInEditor); // ok

请注意reference的第一行。