具有相同类型属性的接口或类型的打字稿速记

时间:2019-02-28 12:23:59

标签: typescript

TypeScript中是否有糖的语法,我可以说所有interface(/ types)属性的类型都是相同的,而不会针对每个属性提及它。

例如:

export interface allStrings {
    prop1: string;
    prop2: string;
}

// Sugard as something like this(Pseudo)
export interface allStrings<string> {
    prop1,popp2;
}

编辑:我不是在寻找一个接口来说所有类型均为string类型值的对象,而是更多的仅具有指定键且每个对象都具有string类型值的对象。

2 个答案:

答案 0 :(得分:4)

您要查找的内容类似于Record<'prop1' | 'prop2', string>

答案 1 :(得分:3)

export interface AllSameType<T> {
    [k: string]: T;
}

这是对象的接口,具有任何名称的属性,并且所有属性的类型均为T。

用法:

const strs: AllSameType<string> = { a: '', b: 1 }; // Error, b is not string