gpt4 book ai didi

typescript - 对接口(interface)执行 'import type' 而不是 'import' 是否有意义?

转载 作者:行者123 更新时间:2023-12-05 02:41:43 34 4
gpt4 key购买 nike

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

import type { Component } from "react";

这是有道理的,因为 Component 是一个类。

如果我正在导入一个接口(interface),导入类型 仍然是必需的吗?或者 Typescript 知道接口(interface)没有值(value),因此不需要 type

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

如果添加了type,编译器不会报错,而且这种用法在docs中没有描述。

最佳答案

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

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

如果此选项设置为preserveimport 将导致编译器发出导入语句,即使导入的类型是接口(interface); import type 不会。

如果此选项设置为错误,接口(interface)必须导入类型导入;使用 import 将导致编译错误。

关于typescript - 对接口(interface)执行 'import type' 而不是 'import' 是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67979629/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com