You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何自定义类型作为PowerShell的OutputType参数值?

在PowerShell中指定自定义类型作为OutputType的值

一、使用自定义类的正确实现方式

若要通过自定义类(如Person)来指定输出类型,需确保类定义在函数之前,PowerShell才能识别该类型。

完整代码示例:

# 自定义类必须定义在函数上方,让PowerShell提前加载类型
class Person {
    [string]$FirstName
    [string]$LastName
}

function Get-Person {
    [CmdletBinding()]
    [OutputType([Person])] # 直接指定自定义类作为输出类型
    param ()

    # 返回自定义类的实例
    return [Person]@{
        FirstName = 'Bill'
        LastName = 'Smith'
    }
}

二、使用PSCustomObject时的OutputType指定

如果不想定义强类型类,直接使用PSCustomObject,可通过两种方式指定输出类型:

方式1:直接指定PSCustomObject类型

function Get-Person {
    [CmdletBinding()]
    [OutputType([PSCustomObject])]
    param ()

    [PSCustomObject]@{
        FirstName = 'Bill'
        LastName = 'Smith'
    }
}

方式2:给PSCustomObject添加自定义类型名后指定

通过PSTypeName给动态对象标记自定义类型,再在OutputType中引用该类型名:

function Get-Person {
    [CmdletBinding()]
    [OutputType('Custom.Person')] # 引用自定义类型名
    param ()

    [PSCustomObject]@{
        FirstName = 'Bill'
        LastName = 'Smith'
        PSTypeName = 'Custom.Person' # 标记自定义类型名
    }
}

内容的提问来源于stack exchange,提问作者lit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 17:42:00