2014-01-15 47 views
1

这不是实例在打字稿纯函数接口或对象接口的问题:如何获取带有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
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 ''; 
} 
+0

谢谢你,我很喜欢这两个 '优雅' :) –

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; 
相关问题