tsconfig的importsNotUsedAsValues属性怎么使用
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 编译出现报错如下

根据报错提示,可以知道当我们导入的是一个类型时需要使用 import type 去替代 import,改成如下代码即可
import type { Test } from './a';
const name: Test = {
name: 'str'
};