如何在Typescript中的函数中注入一个类型?

时间:2015-09-27 03:46:08

标签: typescript

我有这个功能:

elem = (arr, property, num) => {
    arr.forEach(function (elem, index) {
        if (elem[property] === num)
            return elem;
    })
};

我是否可以通过某种方式使用泛型,因此可以使用type调用该函数,以便返回特定的type

例如:

exam = <IExam> elem(exams, 'abc', 3);

我认为这会有效,但我想知道我是否可以以某种方式将IExam传入函数。

1 个答案:

答案 0 :(得分:1)

这可能是答案(有a working example

interface IExam {
    ID: number;
}
var arr: any[] =  [{}, {ID:1}, {ID: 2}];

var elem = <T>(arr, property, num) : T => {
    var result: T = null;

    arr.forEach(function (elm, index) {
        if (elm[property] === num)
            result = <T>elm;
            return;
    })

    return result;
};

var myResult: IExam = elem<IExam>(arr, "ID", 1);

我们可以在这里测试(查看playground, click run

var resultPre  = document.createElement('pre');
resultPre.innerText = JSON.stringify(myResult);

document.body.appendChild(resultPre);