import { Component, OnInit } from '@angular/core';
import { HEROES} from './Models/HeroesArrays';
@Component({
selector: 'app-heroes',
templateUrl: './heroes.component.html',
styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit {
hero: HEROES;
constructor() {
}
错误:"HEROES"引用了一个值,但在此处被用作类型。你是说"英雄类型"吗?ts(2749(
import { Hero } from "../Interfaces/hero";
export const HEROES: Hero[]= [
{name: 'Baby1'},
{name: 'Baby2'},
];
正如@uminder的评论中所提到的,您必须使用""-操作人员然后TypeScript自动知道,这个必须是Hero[]类型,因为导出的const是Hero]]类型。
如果你想明确显示它是这种类型的,你也可以写:hero: Hero[] = HEROES;
您分配的是一个值,您期望它是一个模型。有一点不同。
模型:您可以定义变量的类型,但不能定义值
值:您直接定义它的值,因此不能将其作为模型;
看看这个例子:
1) If you want a model, use the 'interface' feature given by typescript
export interface LoginDetails {
userId?: string;
password?: string;
age?: number;
}
// How you use this in your component:
import { LoginDetails } from './your/correct/path';
userDetails: LoginDetails; // Here you are defining the type
*****************************************************
2) How to use a value:
export const UserDetails = {
userID: 'someUserId',
password: 'somePassword',
age: 20
};
// How to use in your component:
import { UserDetails } from './your/correct/path';
predefinedUserDetails = UserDetails; // Here you are assigning the value
此代码语法允许您定义英雄变量的类型,但不设置值hero: HEROES;
要设置值,您必须使用以下代码
hero = HEROES;