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

TypeScript中是否支持对类型定义进行解构操作?

解决方案

你想要的简化写法是完全可以实现的,只需要对语法做一点小调整即可:
由于babel.types是运行时真实存在的值,你需要先通过typeof关键字拿到它的类型定义,才能进行类型解构赋值,正确写法如下:

import babel from '@babel/core';

type {
  ImportDeclaration,
  ObjectProperty,
  ObjectExpression,
  StringLiteral,
} = typeof babel.types;

该语法在TypeScript 4.5及以上版本完全支持,最终效果和单独导入@babel/types的写法完全一致,可以顺利移除@babel/types的额外依赖。

如果你的项目使用的是低于4.5版本的TypeScript,可以用命名空间别名的方案替代,同样比逐个声明类型别名要简洁:

import babel from '@babel/core';

type BabelTypes = typeof babel.types;
// 后续使用时直接引用 BabelTypes.ImportDeclaration 即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 00:48:02