在 TypeScript 中,应该始终使用明确的类型定义,而不是使用隐含的 any 类型。为了解决这个问题,可以在代码中使用索引签名来明确指定对象的属性和类型。
例如,我们有一个名为 person 的对象,该对象具有不同的属性,我们需要使用这些属性来进行某些操作。如果我们尝试使用 person['name'] 作为索引,编译器会给出一个隐含的 any 类型的警告信息。为了解决这个问题,我们可以使用索引签名来明确指定 person 对象的属性和类型:
interface Person {
name: string;
age: number;
email: string;
}
let person: Person = {
name: 'John Doe',
age: 30,
email: 'john.doe@example.com'
};
function getProperty(obj: T, key: K) {
return obj[key];
}
let name = getProperty(person, 'name'); // 'John Doe'
let age = getProperty(person, 'age'); // 30
let email = getProperty(person, 'email'); // 'john.doe@example.com'
在上面的代码中,我们使用了一个泛型函数 getProperty,并将其应用于 person 对象及其属性名。函数会返回指定属性的值,而且它的返回类型也是明确的。
使用这种方法,我们可以解决隐含 any 类型的问题,并创建更强类型的代码。
上一篇:Angular-由于不是已知属性,因此无法绑定到“ngModel”
下一篇:Angular-运行ngserveui-app-1时出现UncaughtReferenceError:config未定义