Sha*_*ani 7 typescript angular
打字稿编译显示此错误:
源有 X 个元素,但目标只允许 1 个。
export const FooMapping: [{id: FooOperation, display: string}] = [
{ id: FooOperation.Undefined, display: 'Nothing' },
{ id: FooOperation.A, display: 'I'm A' },
{ id: FooOperation.B, display: 'I'm B' }
];
export enum FooOperation {
Undefined = 0,
A = 1,
B = 2,
}
Run Code Online (Sandbox Code Playgroud)
定义特殊对象数组的正确方法是{id: FooOperation, display: string}
什么?
Paw*_*Zaw 76
我有同样的问题。大括号必须位于类型之后:
const FooMapping: [{id: FooOperation, display: string}]
Run Code Online (Sandbox Code Playgroud)
应该
const FooMapping: {id: FooOperation, display: string}[]
Run Code Online (Sandbox Code Playgroud)
记住这一点的简单方法是将对象替换为类型,然后看看它是否有意义:
[string]
不起作用,但string[]
确实有效
pza*_*ger 16
[{id: FooOperation, display: string}]
定义了一个元素的元组。
尝试:
export const FooMapping: Array<{id: FooOperation; display: string}> = [
{ id: FooOperation.Undefined, display: 'Nothing' },
{ id: FooOperation.A, display: "I'm A" },
{ id: FooOperation.B, display: "I'm B" }
];
Run Code Online (Sandbox Code Playgroud)
或者想想类似的事情:
interface Foo {
id: FooOperation;
display: string;
}
export const FooMapping: Foo[] = [...];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6574 次 |
最近记录: |