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
};
经验分享 程序员 微信小程序 职场和发展