首页 > 解决方案 > Angular 接口定义键的允许值

问题描述

我正在使用Angular 8

我是一个类似的界面

export interface MyInterface {
  q: Array<string>;
  filter_by: 'id'|'name'|'data';
}

并且定义字典的类型是

@Input filterBy: string;

const a:MyInterface = {
  q: ['a', 'b'],
  filter_by: this.filterBy
}

但这给出了错误

TS2322: Type 'string' is not assignable to type '"id" | "name" | "data"'.

标签: angulartypescript

解决方案


我不认为这里有什么问题。请在此处找到带有相关角度版本的 stackBlitz 示例。错误应该在您尝试分配filter_by某些不兼容值的其他地方。

对于更新的案例,将filterBy类型从字符串更改为

@Input filterBy: 'id'|'data'|'name';

推荐阅读