在TypeScript中实例化纯函数接口或对象接口不是问题:
interface Fn {
(something: any): string;
}
var map: Fn = function (something) {
return '';
}
interface Data {
bar: number;
baz: boolean;
}
var data: Data = {
bar: 1,
baz: true
};
但是如果我想要一个带有某些字段的函数,我不清楚我可以得到一个实例。
interface FnAndData {
(something: any): string;
bar: number;
baz: boolean;
}
那么我该怎么做才能得到这样的接口实例呢?
答案 0 :(得分:2)
interface FnAndData {
(something: any): string;
bar: number;
baz: boolean;
}
// Option 1
function fn(x: any): string {
return 'hello world';
}
module fn {
export var bar = 4;
export var baz = true;
}
var p: FnAndData;
p = fn; // OK
// Option 2
var q: FnAndData = <FnAndData>function x(n: any) {
var me = <FnAndData>x;
me.bar = 4;
me.baz = true;
return '';
}
答案 1 :(得分:0)
interface FnAndData {
(something: any): string;
bar: number;
baz: boolean;
}
function fn(x: any): string {
return 'hello world';
}
let p:FnAndData = <FnAndData> fn;
p.bar = 4;
p.baz = true;