首页 前端知识 在 TypeScript 中,import type和 import 的区别

在 TypeScript 中,import type和 import 的区别

2024-05-09 11:05:20 前端知识 前端哥 545 655 我要收藏

在 TypeScript 中,import typeimport 有以下区别:

  1. import type 仅仅引入类型信息,而不会引入实际的 JavaScript 对象。这意味着在编译后,import type 引入的代码不会出现在生成的 JavaScript 文件中。而 import 会引入实际的 JavaScript 对象。

  2. import type 只能用于导入类型声明,例如接口、类型别名、枚举等。而 import 可以用于导入值、函数、类等任何东西。

  3. 在使用 import type 时,无法使用导入的类型作为值进行实例化或传递给函数。这意味着,你无法使用 import type 导入的类型来创建一个对象或者传递给一个函数作为参数,因为这些类型只存在于编译时。

举个例子:

// foo.ts
export interface Foo {
  bar: string;
}

// index.ts
import { Foo } from './foo'; // 这里导入了实际的 Foo 接口对象
import type { Foo as FooType } from './foo'; // 这里导入了 Foo 接口的类型信息

const foo: Foo = { bar: 'baz' }; // 正常使用 Foo 接口对象
const fooType: FooType = { bar: 'baz' }; // 无法使用 Foo 接口的类型信息创建一个对象,TypeScript3.8以前的版本这里会报错。3.8之后的版本就不会报错了

因此,当你只需要类型信息时,应该使用 import type。这样可以避免引入多余的代码,并提高编译性能。而当你需要实际的 JavaScript 对象时,则需要使用 import

转载请注明出处或者链接地址:https://www.qianduange.cn//article/7741.html
标签
评论
会员中心 联系我 留言建议 回顶部
复制成功!