假设我在另一个文件中有一个类,我想导入它以使用其类型
import type { Component } from "react";
因为Component是一个类,所以它是有意义的。
如果我正在导入一个接口,import type
仍然是必需的吗?或者Typescript知道接口没有值,因此不需要CCD_ 2。
import type { IHttpResponse } from "../lib/http";
如果添加了type
并且文档中没有描述这种用法,编译器不会抱怨
这取决于importsNotUsedAsValues
编译器选项的值(在tsconfig.json中,或从命令行传入(。
如果设置为remove
(默认值(,则在导入接口(或仅在类型位置使用的类(时,import
和import type
之间没有区别。在这两种情况下,编译后的JavaScript中都不会有import或require语句(因此,将不会执行正在导入的模块中的任何副作用(。
如果此选项设置为preserve
,则即使要导入的类型是接口,import
也会导致编译器发出导入语句;import type
不会。
如果此选项设置为error
,则接口必须与import type
一起导入;使用CCD_ 13将导致编译错误。