interface IObject<Type> {
[x:string]: Type;
};
const stringObj:IObject<string> = {
a: 'b',
c: 1 // will give error
};
xxxxxxxxxx
interface GenericIdentityFn {
<Type>(arg: Type): Type;
}
function identity<Type>(arg: Type): Type {
return arg;
}
let myIdentity: GenericIdentityFn = identity;
xxxxxxxxxx
interface GenericArray<T> {
length: number;
data: T[];
}
const strArray: GenericArray<string> = {
length: 3,
data: ["a", "b", "c"],
};
const numArray: GenericArray<number> = {
length: 4,
data: [1, 2, 3, 4],
};