TypeScript 泛型能减小可用类型的范围吗

   function n(a,b) {

if (typeof a === "string"&& typeof b === "string") {

return 1

}

else if ( a instanceof Dirent && b instanceof Dirent) {

return 2

}

}

已知 ab 只会传入 stringDirent (fs.Dirent 类) 类型, 且 a,b 类型一定相同

我想用泛型写,想有泛型约束能减少我的判断次数
不知道怎么能使用泛型 只包含 stringDirent 类型

用不着泛型,直接利用 TS 重载就可以,甚至可以约束返回值一定是 1 或者 2

typescript">function n(a: string, b: string): 1;

function n(a: Dirent, b: Dirent): 2;

function n(a, b) {

if (typeof a === "string" && typeof b === "string") {

return 1;

} else if ( a instanceof Dirent && b instanceof Dirent) {

return 2;

}

throw new Error('Invalid Arguments!');

}

TypeScript 泛型能减小可用类型的范围吗

用函数重载就行了

interface Dirent {

name: string;

}

type IParmas = Dirent | string;

function n<T extends IParmas>(a: T, b: T) {

if (typeof a === "string" && typeof b === "string") {

return 1

}

else if ( a instanceof Dirent && b instanceof Dirent) {

return 2

}

}

回答

以上是 TypeScript 泛型能减小可用类型的范围吗 的全部内容, 来源链接: utcz.com/a/110025.html

回到顶部