TypeScript 学习笔记:索引签名类型、映射类型
// 索引签名类型
interface StringArray {
[index: number]: string;
}
let myArray: StringArray = ["Bob", "Sally", "Brad"];
let doesNotWork: StringArray = [1, 2, 3]; // 错误: 不能将类型“number”分配给类型“string”
// 映射类型
interface Pets {
[key: string]: string; // 值的类型为字符串
}
let myPets: Pets = {
dog: "Spot",
cat: "Tiger",
bird: "Dudley"
};
let doesNotWork: Pets = {
dog: "Spot",
cat: true // 错误: 不能将类型“boolean”分配给类型“string”
};
在这个例子中,我们定义了一个StringArray
接口,它要求索引为数字的位置上的元素必须是字符串。如果尝试将一个非字符串值放入数组中,TypeScript会报错。同样,Pets
接口中的映射类型要求所有的属性值都必须是字符串。如果尝试将非字符串值赋给属性,TypeScript也会报错。这有助于确保数据结构中的数据类型是正确的。
评论已关闭