ban-types
注意: 此规则是
recommended
规则集的一部分。在
deno.json
中启用完整规则集{ "lint": { "tags": ["recommended"] } }
使用 Deno CLI 启用完整规则集
deno lint --tags=recommended
禁止使用原始包装器对象(例如,String
对象是 string
原始类型的包装器),以及非显式的 Function
类型和被误解的 Object
类型。
在极少数情况下需要原始包装器对象,更多时候是原始类型的大小写错误。您也不能将原始包装器对象分配给原始类型,这会导致后续的类型问题。作为参考,TypeScript 手册 也说明我们永远不应该使用这些包装器对象。
对于 Function
,最好显式定义整个函数签名,而不是使用非特定的 Function
类型,后者不会为您提供函数的类型安全。
最后,Object
和 {}
表示 “任何非 nullish 值”,而不是 “任何对象类型”。object
是 “任何对象类型” 的一个很好的选择。
无效
let a: Boolean;
let b: String;
let c: Number;
let d: Symbol;
let e: Function;
let f: Object;
let g: {};
有效
let a: boolean;
let b: string;
let c: number;
let d: symbol;
let e: () => number;
let f: object;
let g: Record<string, never>;