我已经尝试了几种方法,第一种方法是在下面的代码底部创建一个实现比较器的类。当我尝试在sortListByLastName中传递比较时,我得到一个构造函数没有找到错误,我不确定为什么
import java.util.*;
public class OrganizeThis implements WhoDoneIt
{
/**
Add a person to the organizer
@param p A person object
*/
public void add(Person p)
{
staff.put(p.
我试图创建一个函数,其中第一个参数(数据)是一个Product类型的数组,第二个(元素)是Product内部的任意属性,第三个和第四个参数是"element“的属性。所以让我们说“产品”有属性“客户”,我想得到"Id“和”名称“的客户。
我有以下代码
function getFilterItem<T extends keyof Product, K extends Product[T]>(
data: Product[],
element: T,
id: K extends Product[T] ? keyof K : never,
name: K
我试图更深入地理解类型文本类型,我发现以下行为令人困惑:
interface Person {
name: string;
}
interface Lifespan {
birth: number;
death?: number;
}
let k: keyof (Person | Lifespan); //k is never
let test1: Person | Lifespan = { randomKey: 123 }; //I understand the error: Object literal may only specify known propert
我希望在类型记录中扩展默认的索引匿名类型,并且似乎找不到正确的语法来获取索引对象的值的类型,如果这是可能的话?
以下是问题所在:
编辑:
为了更好地解释这个问题,我重新编写了这些例子。
// How do we pass the value for T as a dictionary through to the iterator?.
interface Object {
where<T = { [key: string]: any}, K = keyof T>(this: T, iterator: (v: any /* this should be valueof T,