TypeScript中使用require实现import type等效功能的方法
import type 是 TypeScript 专属的纯类型导入语法,编译后会被完全抹除,不会生成任何运行时代码。由于 require 本身是 JavaScript 标准的运行时导入语法,不支持单独导入类型,因此没有和原写法完全对等的 require 语法,你可以根据实际使用场景选择以下适配方案:
- 场景1:仅需要导入
NextPage类型,不需要引入next包的运行时代码
直接使用 TypeScript 内置的导入类型查询语法即可,效果和原写法完全一致,编译后不会产生任何运行时代码:
type NextPage = import('next').NextPage;
- 场景2:同时需要使用
next包的运行时能力
可以先通过 require 导入运行时模块,再从模块实例上提取对应类型。如果后续没有用到next这个运行时变量,TypeScript 编译时会自动抹除这条 require 语句,不会产生冗余代码:
const next = require('next'); type NextPage = typeof next.NextPage;
内容的提问来源于stack exchange,提问作者Casebash
相关产品推荐
相关产品推荐

