gpt4 book ai didi

javascript - 检查 MyInterface 是否为 MyClass 类型的实例

转载 作者:行者123 更新时间:2023-11-28 19:59:20 26 4
gpt4 key购买 nike

我有这样的东西:

我在SO上发现了类似的问题:How can I check if element is an instanceof U? ,但它只是展示了如何实现 OfType<T> ,不是OfType<T<U>>

export class Foo implements IFoo
{
private _items:Array<MyInterface> = new Array<MyInterface>();

public Something = () =>
{
var myTypes = this.OfType<MyClass<TestModel>>(this._items);
}

private OfType = <T>(items:any[]) =>
{
//here i would like to return all this._items that are T
}
}


export class TestModel
{

}

export class MyClass<T>
{

}

如何检测类是否属于 T<U> 类型?此事件可能吗?如果需要,我愿意实现黑客攻击吗?

最佳答案

不幸的是,JavaScript 没有像 C# 那样的反射,并且无法检测类是否为 T 类型。
测试 JavaScript 对象是否实现接口(interface)的唯一方法是使用 duck-typing 。也就是说,如果一个物体看起来像鸭子,走路像鸭子,叫起来像鸭子,那么它就是鸭子。

在他们的书“Pro JavaScript Design Patterns”中,Ross Harmes 和 Dustin Diaz 解释了如何通过测试给定类的属性和方法来确定类是否实现接口(interface)。

看看我关于这个 JavaScript 模式的博客 - 其中显示 how to implement run-time type checking (各种反射)在 TypeScript 中。

关于javascript - 检查 MyInterface 是否为 MyClass<T> 类型的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21936647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com