如何使用typescript定义一个具有不同字段的对象?

时间:2012-11-11 11:24:17

标签: javascript typescript

我有以下功能:

function getAdminParams(entity) {
   params = {};
   params = {
                pk: "0006000",
                param: "?pk=0006000",
                table: "Content",
                success: true
            };
  return params;
}

在另一个文件中我使用这个函数:

params = getAdminParams(entity);
    if (params.success) {

有没有办法可以使用intellisense以便params对象 显示为具有“成功”参数?我看到Typescript有类和接口,但我不确定如何将这些用作返回类型。

1 个答案:

答案 0 :(得分:2)

如果将params定义为接口,则可以在函数括号后使用冒号将其声明为getAdminParams()的返回类型。像这样:

interface IParams {
    success: bool;
    pk: string;
    // etc...
}

function getAdminParams(entity): IParams {
    params = {
                pk: "0006000",
                success: true
                // etc...
            };
    return params; // If the properties assigned do not fulfill the IParams interface, this will be marked as an error.
}

params = getAdminParams(entity);
if (params. // Intellisense should offer success and pk and any other properties of IParams).

getAdminParams内你可以明确地将params声明为新的IParams,但是类型推断会为你设置智能感知,即使你不这样做,只要属性为你分配给params对象履行IParams接口中指定的合同。

当然,您的返回类型可以是类,字符串或任何其他类型,您可以使用function f(): returnType语法以相同的方式声明它。

language specification详细介绍了所有这些内容,或者此处有一个较短的介绍:http://www.codeproject.com/Articles/469280/An-introduction-to-Type-Script或类似的SO问题:How to declare Return Types for Functions in TypeScript