typescript接口:如何实现合并功能接口和属性接口的接口。例如:
| DT | FLAG | IS_PREV_DT_FLAG_ZERO |
|----------------------|------|----------------------|
| 2018-01-01T00:00:00Z | 1 | 0 |
| 2018-01-02T00:00:00Z | 0.5 | 0 |
| 2018-01-03T00:00:00Z | 3 | 0 |
| 2018-01-06T00:00:00Z | 9 | 0 |
| 2018-01-08T00:00:00Z | 0 | 0 |
| 2018-01-11T00:00:00Z | 7 | 1 |
| 2018-01-14T00:00:00Z | 12 | 0 |
答案 0 :(得分:1)
问题是development
同时具有调用签名(可以由函数满足)和成员(来自继承keymap
)。您无法在一个中定义这样的对象在Typescript(或Javascript)中的步骤。分配函数时,编译器会抱怨缺少属性(因为它们不存在)。你可以做以下两件事之一:
使用Object.assign
一步构建对象
var me: development = Object.assign((code: string)=> console.log(code), keyMapInstance)
使用类型断言并稍后完成初始化
var me: development = <development>((code)=> console.log(code))
me.mark = 10;
me.name ="";
变体:使字段可选,稍后完成初始化
interface development extends Partial<keyMap> {
(code: string): void
}
var me: development = (code)=> console.log(code)
me.mark = 10;
me.name ="";
答案 1 :(得分:0)
在development
界面中,我相信您正在尝试声明一个带有void
参数的string
函数。应该这样做:
interface development extends keyMap {
fn: (code: string) => void
}