typescript类型问题

const a = [1, '2', {}, {a: 1}, null];
根据上述代码语句怎么推断出下面ts类型。

[1, '2', {}, {a: 1}, null] => number | string | {} | {a : 1}

阅读 2.4k
3 个回答
const d = [1, '2', {}, {a: 1}, null] as const;

type RmReadonly<T extends object> = {
    -readonly [key in keyof T]: T[key];
}

type GetType<D> = {
    [key in keyof D]: D[key] extends null ? never :  D[key] extends object ? RmReadonly<D[key]> : D[key];
}

type Result = GetType<typeof d>[number]

这样试试

参考一下

const a = [1, '2', {}, {a: 1}, null] as const;

type Result = (typeof a) extends readonly (infer T)[]? NonNullable<T>:never

// 结果是: 1 | "2" | {} | {readonly a: 1;}

新手上路,回答的第一个问题,给个赞吧

const a = [1, '2', {}, {a: 1}, null];

type A = typeof a[0];
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题