我正在尝试全局声明ts类型。我有类似type Nullable<T> = T | null
这样的东西,用于项目文件中。我不想在每个文件中复制此部分。我试图在declarations.ts
或declarations.d.ts
中声明这种类型,例如declare type Nullable<T> = T | null
,我的IDE和编译器对此都可以,但是当我将此项目用作另一个项目中的模块(导入)时,然后出现错误:d.ts文件中的Cannot find name 'Nullable'
。
您能帮我如何在全局范围内声明该泛型?你有什么想法?谢谢您的回复。
答案 0 :(得分:1)
您可以在global中声明该类型,以使该类型可以在不进行任何导入的情况下全局访问。
declare global {
type Nullable<T> = T | null
}
注意与全局命名空间中的任何内容一样,您将冒与其他模块发生名称冲突的风险。
答案 1 :(得分:0)
不确定要做什么,但是可以使用导出:
// lib.ts
export type Nullable<T> = T | null;
// main.ts
import { Nullable } from "./lib.ts";
let a: Nullable = null;
当然,您仍然必须在每个文件的顶部添加一个导入语句。