如何使用Typescript声明一个具有我将在函数内部传递的属性的对象?

时间:2012-10-28 16:56:40

标签: typescript

我一直在使用以下内容:

var modal = {
    content: '',
    form: '',
    href: ''
}

但是现在我已经开始使用Typescript了,我可以更好地声明一个对象,如何声明我的属性类型。我使用这个对象的原因是它在函数内部,在函数内部我有其他函数来设置和使用属性的值。这对我来说是最好的方式吗?还是有另一种方式我可以用打字稿更好地做到这一点?

1 个答案:

答案 0 :(得分:2)

我猜你正在寻找这样的东西:

interface Modal {
    content: string;
    form: string;
    href: string;
}

function doIt() {

    var modal = {
        content: '',
        form: '',
        href: ''
    }

    function setStuff(m : Modal) {
        m.content = 'some content';
        m.form = 'form1';
        m.href = '...';
    }

    function clear(m : Modal) {
        m.content = m.form = m.href = '';
    }

    function dump(m : Modal) {
        console.log('content: '+ m.content);
        console.log('form: '+ m.form);
        console.log('href: '+ m.href);
    }

    dump(modal);
    setStuff(modal);
    dump(modal);
    clear(modal);
    dump(modal);
}

请注意,您不需要将变量modal声明为Modal类型,TypeScript会自动推断此信息。只需将类型添加到函数即可。

但如果您愿意,也可以为变量明确显示此类型信息:

var modal : Modal = {
    content: '',
    form: '',
    href: ''
}