如何使用TypeScript中的字段获取函数接口的实例?

时间:2014-01-15 17:43:23

标签: typescript

在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;
}

那么我该怎么做才能得到这样的接口实例呢?

2 个答案:

答案 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;