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

如何定义仅包含单个NonNullable元素的Array的正确类型?

实现方案

在TypeScript中可以通过定长元组+非空类型约束实现需求,具体代码如下:

泛型版本(可指定元素类型)

// 类型定义
type SingleNonNullableArray<T> = [NonNullable<T>]

校验效果

const test1: SingleNonNullableArray<number> = [] // 报错:数组长度不符合要求
const test2: SingleNonNullableArray<number> = [null] // 报错:元素不能为null
const test3: SingleNonNullableArray<number> = [undefined] // 报错:元素不能为undefined
const test4: SingleNonNullableArray<number> = [5] // 校验通过
const test5: SingleNonNullableArray<number> = [1, 2] // 报错:数组长度不符合要求

通用版本(无需提前指定元素类型)

如果不需要限制元素类型,只需要满足「单个非空元素」的规则,可以用以下定义:

type SingleNonNullableArray = [NonNullable<unknown>]

校验效果

const test6: SingleNonNullableArray = ['字符串'] // 通过
const test7: SingleNonNullableArray = [false] // 通过
const test8: SingleNonNullableArray = [{ key: 'value' }] // 通过
const test9: SingleNonNullableArray = [null] // 报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:06:06