首页 > 解决方案 > 泛型来评估参数是否是“泛型类的实例”

问题描述

我想在一个函数中确定参数是否属于某个类。这是-non-working-的想法:

function assertClass<CLASS>(v: any, theClass: CLASS, message: string): v is typeof theClass{

    let is = v instanceof CLASS ;   // err 'CLASS' only refers to a type, but is being used as a value here
    return assert(is, message);
}

我想做的事:

let animal: Cat | Dog;
animal= somethingThatCanReturnCatOrDog();
assertClass<Cat>(animal, 'should be a Cat');

我尝试了几种与 typeof 的组合,但变得更加困惑,呃!

标签: typescriptgenerics

解决方案


推荐阅读