繁体   English   中英

如何使用打字稿定义具有不同字段的对象?

[英]How can I define an object to have different fields using typescript?

我有以下功能:

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

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

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

有没有办法可以使用智能感知,以便 params 对象显示为具有“成功”参数? 我看到 Typescript 有类和接口,但我不确定如何或是否可以将它们用作返回类型。

如果将 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接口中指定的IParams

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

语言规范非常详细地涵盖了所有这些,或者这里有一个简短的介绍: http : //www.codeproject.com/Articles/469280/An-introduction-to-Type-Script或类似的 SO 问题在这里: How在 TypeScript 中声明函数的返回类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM