importsNotUsedAsValues作用

通过它可以来控制没被使用的导入语句将会被如何处理,它提供来三个不同的选项。

  • ​remove​​:这是默认 —— 移除未使用的导入语句
  • ​preserve​​:将会保留所有的导入语句,即使是从来没有被使用。
  • ​error​​​:将会保留所有的导入语句(与​​preserve​​ 选项相同),但是当一个值的导入仅仅用于类型时将会抛出错误。

示例

如下代码, ​​Test​​​ 是一个类型 ,引入的三个值中只有 ​​getAge​​ 被使用了

import { Test } from './a';
import { getName, getAge } from './utils';

console.log(getAge);

编译后的结果

​remove​​ 编译后的

import { getAge } from './utils';

console.log(getAge);

​preserve​​ 编译

import './a'
import { getAge } from './utils'

console.log(getAge)

​error​​​ 编译与 ​​preserve​​ 编译效果一致

error 配置什么时候会触发呢

如下代码使用

import { Test } from './a';

const name: Test = {
name: 'str'
};

当使用 ​​importsNotUsedAsValues: error​​​ 时,​​tsc​​ 编译出现报错如下


tsconfig之importsNotUsedAsValues属性_typescript

根据报错提示,可以知道当我们导入的是一个类型时需要使用 ​​import type​​​ 去替代 ​​import​​,改成如下代码即可

import type { Test } from './a';

const name: Test = {
name: 'str'
};