You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在tsconfig配置或ESLint规则可避免unknown类型的赋值?

解决方案:捕获Array.from类型不安全赋值问题

可以通过修改TypeScript配置或ESLint规则来捕获案例1的问题,具体如下:

一、通过tsconfig.json配置捕获

开启TypeScript的严格类型检查模式,这是最直接有效的方式:
在tsconfig.json的compilerOptions中设置:

{
  "compilerOptions": {
    "strict": true
  }
}

如果不想全局开启严格模式,至少单独开启以下两个选项:

{
  "compilerOptions": {
    "strictNullChecks": true,
    "noImplicitAny": true
  }
}

开启后,案例1的代码会触发编译错误:

Type 'unknown[]' is not assignable to type 'MyType[]'. Type 'unknown' is not assignable to type 'MyType'.

直接在编译阶段拦截不安全赋值。

二、通过ESLint规则捕获

若无法启用严格模式,可使用@typescript-eslint/no-unsafe-assignment规则,并调整配置扩展检查范围到unknown类型:
在ESLint配置文件中添加:

{
  "rules": {
    "@typescript-eslint/no-unsafe-assignment": [
      "error",
      {
        "allow": []
      }
    ]
  }
}

该规则默认仅拦截any类型的不安全赋值,清空allow列表后会对unknown类型的赋值也进行检查,触发案例1的报错。

另外,案例2在开启strictNullChecks后会自动触发报错,因为MyType|undefined[]无法赋值给不允许undefined的MyType[]。

内容的提问来源于stack exchange,提问作者kerosene

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 09:10:53