我想声明一个像这样的类型:
我想声明一个像这样的类型:
interface DependData {[key: string]: string};
但是出现了这样的错误:
Statements are not allowed in ambient contexts
我想声明一个像这样的类型:
interface DependData {[key: string]: string};
但是出现了这样的错误:
Statements are not allowed in ambient contexts
[key in YourEnumType]
语法应该会有所帮助。干杯! - no idconst data: DependData = {};
(请注意,上面的问题实际上是在询问为什么他们无法声明索引访问类型) - David SherretMap<string, number>
这种类型,因为你刚才说了它。这个问题是关于当你使用一个 Object
(比如来自 { these: 'literals' }
的对象)及其属性作为映射时的情况。无论属性名是什么,你都可以告诉 TypeScript 每个属性的类型。 - doug65536key: string
替换为任何其他类型。编译器会报错。 - windmaomao我不太擅长TypeScript,但当我深入研究我们的代码库时,发现以下方法也是有效的,并且可以更加健壮,因为否则你将无法使用非字符串作为键。
export enum SORT_TYPES {
DISPLAY_NAME_ASC = 'Patient: A-Z',
DISPLAY_NAME_DESC = 'Patient: Z-A',
}
export const SORT_ORDERS: Map<SORT_TYPES, String[]> = new Map([
[SORT_TYPES.DISPLAY_NAME_ASC, ['display_name', 'ASC']],
[SORT_TYPES.DISPLAY_NAME_DESC, ['display_name', 'DESC']],
])
因此,这里使用了 Map
类型,而键类型变为 SORT_TYPES
而非字符串。
let m = new Map<type1, type2>();
- EternalObserver