对接口执行'import type'而不是'import'有什么意义吗?

  • 本文关键字:import 执行 接口 type typescript
  • 更新时间 :
  • 英文 :


假设我在另一个文件中有一个类,我想导入它以使用其类型

import type { Component } from "react";

因为Component是一个类,所以它是有意义的。

如果我正在导入一个接口,import type仍然是必需的吗?或者Typescript知道接口没有值,因此不需要CCD_ 2。

import type { IHttpResponse } from "../lib/http";

如果添加了type并且文档中没有描述这种用法,编译器不会抱怨

这取决于importsNotUsedAsValues编译器选项的值(在tsconfig.json中,或从命令行传入(。

如果设置为remove(默认值(,则在导入接口(或仅在类型位置使用的类(时,importimport type之间没有区别。在这两种情况下,编译后的JavaScript中都不会有import或require语句(因此,将不会执行正在导入的模块中的任何副作用(。

如果此选项设置为preserve,则即使要导入的类型是接口,import也会导致编译器发出导入语句;import type不会。

如果此选项设置为error,则接口必须import type一起导入;使用CCD_ 13将导致编译错误。

最新更新